R: postForm from the RCurl package and issues API call -


does have experience limitations of postform rcurl package?

i pulling data off server , out of got error message * http 1.0, assume close after body , 500 internal server error. tested configurations , seemed fine. i've created clean database , re-uploaded database 20/30 cases @ time while repeatedly pulling data api/postform call r. works should until around 150 cases error message appears. regardless of order upload cases in error appears around 150/160 cases , total files size around 11 12 mb. in other words, error doesn't seem dependent on specific cases not same cases breaks it

any advice appreciated.

i've attached screenshot spice rather boring post bit , make not having working example,

enter image description here

update 2013-08-24 19:33:18z

here curlversion()$version , sessioninfo() information,

> curlversion()$version [1] "7.22.0" > sessioninfo() r version 3.0.1 (2013-05-16) platform: i686-pc-linux-gnu (32-bit)  locale:  [1] lc_ctype=en_us.utf-8       lc_numeric=c                [3] lc_time=en_us.utf-8        lc_collate=en_us.utf-8      [5] lc_monetary=en_us.utf-8    lc_messages=en_us.utf-8     [7] lc_paper=c                 lc_name=c                   [9] lc_address=c               lc_telephone=c             [11] lc_measurement=en_us.utf-8 lc_identification=c         attached base packages: [1] stats     graphics  grdevices utils     datasets  methods   base       other attached packages: [1] rcurl_1.95-4.1 bitops_1.0-6 

update 2013-08-26 05:39:26z

as suggested in hadley's comment i've added verbose rcurl output call works , call fails, see below

the call works less 150 cases in database

> r.object.api <- postform(r.object.url, token=r.object.token, content="record", type="flat", format="csv", raworlabel="label", .opts=curloptions(ssl.verifypeer=true, cainfo=r.object.crt, verbose=true)) * connect() research.org port 443 (#0) *   trying xx.xx.xxx.xxx... * connected * set certificate verify locations: *   cafile: /home/dir/research.cert   capath: /etc/ssl/certs * ssl connection using dhe-rsa-aes256-sha * server certificate: *      subject: c=xx; postalcode=xxxxx-xxxx; st=xx; l=xxxxxx; street=xxx; street=xx xxxxxx xx; o=xxxx, xxx; ou=xxx; cn=research.org *      start date: 2013-02-04 00:00:00 gmt *      expire date: 2016-02-04 23:59:59 gmt *      subjectaltname: research.org matched *      issuer: c=us; o=xxxxxx; ou=xxxxxx; cn=xxxxxx server xx *      ssl certificate verify ok. > post /api/ http/1.1 host: research.org accept: */* content-length: 573 expect: 100-continue content-type: multipart/form-data; boundary=----------------------------xxxxxxxxxxxx  < http/1.1 100 continue < http/1.1 200 ok < date: mon, 26 aug 2013 05:16:44 gmt < server: apache/2.2.15 (red hat) < x-powered-by: php/5.3.3 < expires: 0 < cache-control: no-store, no-cache, must-revalidate < pragma: no-cache < connection: close < transfer-encoding: chunked < content-type: text/html; charset=utf-8 <  * closing connection #0 >  

the call fails more 150 cases in database

> r.object.api <- postform(r.object.url, token=r.object.token, content="record", type="flat", format="csv", raworlabel="label", .opts=curloptions(ssl.verifypeer=true, cainfo=r.object.crt, verbose=true)) * connect() research.org port 443 (#0) *   trying xx.xx.xxx.xxx... * connected * set certificate verify locations: *   cafile: /home/dir/research.cert   capath: /etc/ssl/certs * ssl connection using dhe-rsa-aes256-sha * server certificate: *      subject: c=xx; postalcode=xxxxx-xxxx; st=xx; l=xxxxxx; street=xxx; street=xx xxxxxx xx; o=xxxx, xxx; ou=xxx; cn=research.org *      start date: 2013-02-04 00:00:00 gmt *      expire date: 2016-02-04 23:59:59 gmt *      subjectaltname: research.org matched *      issuer: c=us; o=xxxxxx; ou=xxxxxx; cn=xxxxxx server xx *      ssl certificate verify ok. > post /api/ http/1.1 host: research.org accept: */* content-length: 573 expect: 100-continue content-type: multipart/form-data; boundary=----------------------------xxxxxxxxxxxx  < http/1.1 100 continue * http 1.0, assume close after body < http/1.0 500 internal server error < date: mon, 26 aug 2013 05:15:05 gmt < server: apache/2.2.15 (red hat) < x-powered-by: php/5.3.3 < expires: 0 < cache-control: no-store, no-cache, must-revalidate < pragma: no-cache < content-length: 276 < connection: close < content-type: text/html; charset=utf-8 <  * closing connection #0 error: internal server error 

doesnt answer question relates options , keepalive:

rcurl uses libcurl library. different curl command line tool. need @ libcurl options here. curlopt_tcp_keepalive maybe want. in rcurl listed tcp.keepalive if present in listcurloptions().

from easyopt man page added in 7.25.0. can check version of libcurl rcurl using running

> curlversion()$version [1] "7.22.0" 

unfortunately version of libcurl rcurl using doesnt handle keep alives yet.


Comments

Popular posts from this blog

ruby on rails - Is it the correct way to implement belongs_to relation with factory girl? -

geolocation - Windows Phone 8 - Keeping background location tracking active beyond four hours -

Uncaught TypeError: Cannot read property 'parentNode' of null javascript -