r http curl get rcurl

RCurl getForm pase los encabezados http



(1)

¡Bienvenido al confuso mundo de RCurl ! Has descubierto que su sintaxis no tiene sentido, que no es tu culpa.

En getForm pasas los encabezados como el segundo argumento (el ... ). Ver la sección de uso de ? getForm ? getForm :

getForm(uri, ..., .params = character(), .opts = list(), curl = getCurlHandle(), .encoding = integer(), binary = NA, .checkParams = TRUE)

La sección de argumentos dice:

... los pares de nombre-valor de los parámetros. Tenga en cuenta que estas no son las opciones de CURL.

Por el contrario, la otra función de caballo de batalla getURL dice:

getURL(url, ..., .opts = list(), write = basicTextGatherer(.mapUnicode = .mapUnicode), curl = getCurlHandle(), async = length(url) > 1, .encoding = integer(), .mapUnicode = TRUE)

... valores nombrados que se interpretan como opciones de CURL que rigen la solicitud HTTP.

Por lo tanto, al usar getForm , puede simplemente pasar los encabezados como una lista, pero cuando usa getURL , debe especificarlos en un argumento httpheader .

Mi consejo general es, por lo tanto, usar siempre curlPerform lugar de cualquiera de las funciones de contenedor (como getForm o getURL ), porque entonces siempre getForm una sintaxis consistente.

Utilizando la función getForm de getForm , que es la única manera agradable de pasar los parámetros GET, necesito modificar algunos encabezados http. En getURI, acaba de pasar httpheader = c(Whatever=''whatever'',...) y funcionará. Desafortunadamente, ese argumento parece ser ignorado por getForm .

¿Cómo configuro los encabezados http en una solicitud getForm?