curlPerform              package:RCurl              R Documentation

_P_e_r_f_o_r_m _t_h_e _H_T_T_P _q_u_e_r_y

_D_e_s_c_r_i_p_t_i_o_n:

     These function causes the HTTP query, that has been specified via
     the different options in this and other calls, to be sent and
     processed. Unlike in curl itself, for 'curlPerform' one can
     specify all the options in this call as an atomic invocation. This
     avoids having to set the options and then perform the action.
     Instead, this is all done in one call.

     For 'curlMultiPerform', one must add the relevant
     'CURLHandle-class' objects to the 'MultiCURLHandle-class' objects
     before issuing the call to 'curlMultiPerform'.

_U_s_a_g_e:

     curlPerform(..., .opts = list(), curl = getCurlHandle(), .encoding = integer())
     curlMultiPerform(curl, multiple = TRUE)

_A_r_g_u_m_e_n_t_s:

    curl: for 'curlPerform', this is the 'CURLHandle' object giving the
          structure for the options  and that will process the command.
          For 'curlMultiPerform', this is an object of class code
          'MultiCURLHandle-class'.

     ...: a named list of curl options to set after the handle has been
          created.

   .opts: a named list or 'CURLOptions' object identifying the curl
          options for the handle. This is merged with the values of ...
          to create the actual options for the curl handle in the
          request.

multiple: a logical value. If 'TRUE' and the internal call to
          'curl_multi_perform' returns a value that indicates there is
          still data available from one of the HTTP responses, we call
          'curl_multi_perform' repeatedly until there is no more data
          available  at that time. If this is 'FALSE', we call
          'curl_multi_perform' once and return, regardless of whether
          there is more data available. This is convenient if we want
          to limit the time spent in the call to 'curlMultiPerform'. 

.encoding: an integer or a string that explicitly identifies the
          encoding of the content that is returned by the HTTP server
          in its response to our query. The possible strings are
          UTF-8 or ISO-8859-1 and the integers should be specified
          symbolically as  'CE_UTF8' and 'CE_LATIN1'. Note that, by
          default, the package attempts to process the header of the
          HTTP response to determine the encoding. This argument is
          used when such information is erroneous and the caller knows
          the correct encoding.

          Note that the encoding argument is not a regular libcurl
          option and is handled specially by RCurl. But as a result, it
          is not unset in subsequent uses of the curl handle ('curl'). 

_V_a_l_u_e:

     A integer value indicating the status of the request. This should
     be 0 as other errors will generate errors.

_A_u_t_h_o_r(_s):

     Duncan Temple Lang <duncan@wald.ucdavis.edu>

_R_e_f_e_r_e_n_c_e_s:

     Curl homepage <URL: http://curl.haxx.se>

_S_e_e _A_l_s_o:

     'getURL' 'postForm' 'getForm' 'curlSetOpt'

_E_x_a_m_p_l_e_s:

       h = basicTextGatherer()
       curlPerform(url="http://www.omegahat.org/RCurl", writefunction = h$update)
        # Now read the text that was cumulated during the query response.
       h$value()

       # SOAP request
     body = '<?xml version="1.0" encoding="UTF-8"?>\
     <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" \
                        xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" \
                        xmlns:xsd="http://www.w3.org/1999/XMLSchema" \
                        xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" \
                        xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">\
       <SOAP-ENV:Body>\
            <namesp1:hi xmlns:namesp1="http://www.soaplite.com/Demo"/>\
       </SOAP-ENV:Body>\
     </SOAP-ENV:Envelope>\n'

       h$reset()
     curlPerform(url="http://services.soaplite.com/hibye.cgi",
                 httpheader=c(Accept="text/xml", Accept="multipart/*", SOAPAction='"http://www.soaplite.com/Demo#hi"',
                              'Content-Type' = "text/xml; charset=utf-8"),
                 postfields=body,
                 writefunction = h$update,
                 verbose = TRUE
                 )

       body = h$value()

        # Using a C routine as the reader of the body of the response.
       routine = getNativeSymbolInfo("R_internalWriteTest", PACKAGE = "RCurl")$address
       curlPerform(URL = "http://www.omegahat.org/RCurl/index.html",
                   writefunction = routine)

