[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