Hi, I am working with the RCurl package and I am using the curlPerform function for an soap-query. The problem is that the code is usually working well, but sometimes the connection gets lost. So I wrote a while-loop to repeat the query if anything might happened so that the same query runs again, but if the query-faults it takes a very long time for the repetition. My question is if there is any possibility to force a time out for the curlPerform function or something like that? Thanks! run = 1 i=0 while(run==1) { i=i+1 try ( run <- curlPerform(url = "http://search.webofknowledge.com/esti/wokmws/ws/WokSearchLite.cgi", httpheader=c("Accept-Encoding"="gzip,deflate","Content-Type"="text/xml;charset=UTF-8",'SOAPAction'='""', "Cookie"=paste('SID="',s_session,'"',sep=""),"Content-Length"=paste(nchar(s_body)),"Host"="search.webofknowledge.com","Connection"="Keep-Alive","User-Agent"="Apache-HttpClient/4.1.1 (java 1.5)"), postfields=s_body, writefunction = h$update ,verbose = TRUE) ,TRUE) print(i) } [[alternative HTML version deleted]]
Hi Florian Yes, there are several options for a curl operation that control the timeout. The timeout option is the top-level general one. There is also timeout.ms. You can also control the timeout length for different parts of the operation/request such as via the connecttimeout for just establishing the connection. See the Connection Options in the libcurl help page for curl_easy_setopt. Best, D. On 10/30/12 9:30 AM, Florian Umlauf (CRIE) wrote:> > > Hi, > > I am working with the RCurl package and I am using the curlPerform > function for an soap-query. > The problem is that the code is usually working well, but sometimes the > connection gets lost. > > So I wrote a while-loop to repeat the query if anything might happened > so that the same query runs again, but if the query-faults it takes a > very long time for the repetition. > > My question is if there is any possibility to force a time out for the > curlPerform function or something like that? > > > Thanks! > > > > run = 1 > i=0 > while(run==1) > { > i=i+1 > try ( > run <- curlPerform(url = > "http://search.webofknowledge.com/esti/wokmws/ws/WokSearchLite.cgi", > httpheader=c("Accept-Encoding"="gzip,deflate","Content-Type"="text/xml;charset=UTF-8",'SOAPAction'='""', > "Cookie"=paste('SID="',s_session,'"',sep=""),"Content-Length"=paste(nchar(s_body)),"Host"="search.webofknowledge.com","Connection"="Keep-Alive","User-Agent"="Apache-HttpClient/4.1.1 > (java 1.5)"), > postfields=s_body, > writefunction = h$update > ,verbose = > TRUE) > ,TRUE) > > > print(i) > } > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > >
Hi, I am working with the RCurl package and I am using the curlPerform function for an soap-query. The problem is that the code is usually working well, but sometimes the connection gets lost. So I wrote a while-loop to repeat the query if anything might happened so that the same query runs again, but if the query-faults it takes a very long time for the repetition. My question is if there is any possibility to force a time out for the curlPerform function or something like that? Thanks! run = 1 i=0 while(run==1) { i=i+1 try ( run <- curlPerform(url = "http://search.webofknowledge.com/esti/wokmws/ws/WokSearchLite.cgi", httpheader=c("Accept-Encoding"="gzip,deflate","Content-Type"="text/xml;charset=UTF-8",'SOAPAction'='""', "Cookie"=paste('SID="',s_session,'"',sep=""),"Content-Length"=paste(nchar(s_body)),"Host"="search.webofknowledge.com","Connection"="Keep-Alive","User-Agent"="Apache-HttpClient/4.1.1 (java 1.5)"), postfields=s_body, writefunction = h$update ,verbose = TRUE) ,TRUE) print(i) } [[alternative HTML version deleted]]