[R] RCurl and cookies in POST requests
Christian M.
chr+r-help at tx0.org
Mon Nov 15 16:06:29 CET 2010
Hello Duncan.
Thanks for having a look at this. As soon as I get home I'll try
your suggestion.
BTW, the link to the omega-help mailing list seems to be broken:
http://www.omegahat.org/mailman/listinfo/
Thank you.
chr
Duncan Temple Lang (Monday 15 November 2010, 01:02):
> Hi Christian
>
> Thanks for finding this. The problem seems to be that the finalizer
> on the curl handle seems to disappear and so is not being called
> when the handle is garbage collected. So there is a bug somewhere
> and I'll try to hunt it down quickly.
>
> In the meantime, you can achieve the same effect by calling the
> C routine curl_easy_cleanup. You can't do this directly with a
> .Call() or .C() as there is no explicit interface in the RCurl
> package to this routine. However, you can use the Rffi package
> (on the omegahat repository)
>
> library(Rffi)
> cif = CIF(voidType, list(pointerType))
> callCIF(cif, "curl_easy_cleanup", curl at ref)
>
> I'll keep looking for why the finalizer is getting discarded.
>
> Thanks again,
>
> D.
>
> On 11/14/10 6:30 AM, Christian M. wrote:
> > Hello.
> >
> > I know that it's usually possible to write cookies to a cookie
> > file by removing the curl handle and doing a gc() call. I can do
> > this with getURL(), but I just can't obtain the same results with
> > postForm().
> >
> > If I use:
> >
> > curlHandle <- getCurlHandle(cookiefile=FILE, cookiejar=FILE)
> >
> > and then do:
> >
> > getURL(http://example.com/script.cgi, curl=curlHandle)
> > rm(curlHandle)
> > gc()
> >
> > it's OK, the cookie is there. But, if I do (same handle; the
> > parameter is a dummy):
> >
> > postForm(site, .params=list(par="cookie"), curl=curlHandle,
> > style="POST")
> > rm(curlHandle)
> > gc()
> >
> > no cookie is written.
> >
> > Probably I'm doing something wrong, but don't know what.
> >
> > Is it possible to store cookies read from the output of a
> > postForm() call? How?
> >
> > Thanks.
> >
> > Christian
> >
> > PS.: I'm attaching a script that can be sourced (and its .txt
> > version). It contains an example. The expected result is a file
> > (cookies.txt) with two cookies. The script currently uses
> > getURL() and two cookies are stored. If postForm() is used
> > (currently commented), only 1 cookie is written.
> >
--
SDF Public Access UNIX System - http://sdf.lonestar.org
More information about the R-help
mailing list