[BioC] Unable to use biomaRt because Rcurl doesn't pick up my proxy server address
Duncan Temple Lang
duncan at wald.ucdavis.edu
Mon Jul 10 21:46:47 CEST 2006
Hi Michael
In the specific case of setting the proxy, there is
an easy way to achieve this. Use the http_proxy environment
variable
Sys.putenv("http_proxy" = "http://my.proxy.org:9999")
giving the value as your proxy server.
For setting arbitrary options, we need to have a mechanism
that looks for a default set of options and use that if it
exists. I'll add that to the next release.
Thanks
D.
michael watson (IAH-C) wrote:
> Hi
>
> I'm using R 2.3.1 on windows, with biomaRt 1.7.3 and Rcurl 0.6-2. I am
> also using the "--internet2" option in R, which as I understand it,
> takes it's internet connection information from Windows, and I have
> Windows set up to access the internet through a proxy. However,
> curlPerform() will not work unless I specifically set the proxy. I
> can't set the proxy for the calls to Rcurl functions, as they are all
> wrapped up in biomaRt functions.
>
> This is probably best demonstrated with some code:
>
>> # I have an internet connection!
>> source("http://www.bioconductor.org/biocLite.R")
>
>> # biomaRt cannot connect
>> library(biomaRt)
> Loading required package: XML
> Loading required package: RCurl
> Warning message:
> use of NULL environment is deprecated
>> mart <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")
> Error in curlPerform(curl = curl, .opts = opts) :
> couldn't connect to host
>
>> # tracked down the error to here
>> getURL("http://www.biomart.org/biomart/martservice?type=registry")
> Error in curlPerform(curl = curl, .opts = opts) :
> couldn't connect to host
>
>> # However, download.file works with the same URL!
>>
> download.file("http://www.biomart.org/biomart/martservice?type=registry"
> , "test.xml")
> trying URL 'http://www.biomart.org/biomart/martservice?type=registry'
> Content type 'text/plain' length 200 bytes
> opened URL
> downloaded 1908 bytes
>
> Warning message:
> downloaded length 1908 != reported length 200
>
>> # If I specifically set the proxy, curlPerform works!
>> myOpts = curlOptions(proxy="http://myproxyserver.com")
>> curlPerform(url="http://www.omegahat.org/RCurl", writefunction =
> h$update, .opts=myOpts)
> OK
> 0
>
>> # and if I take it away again, it doesn't
>> curlPerform(url="http://www.omegahat.org/RCurl", writefunction =
> h$update)
> Error in curlPerform(url = "http://www.omegahat.org/RCurl",
> writefunction = h$update) :
> couldn't connect to host
>
>
> So, I'm not sure what to do here - either the biomaRt code needs
> changing so that I can pass in my proxy server address for the Rcurl
> functions, or the Rcurl code needs changing so that it picks up my
> internet connection settings the same way that download.file() and
> source() do....
>
> Thanks
> Mick
More information about the Bioconductor
mailing list