所以本质上,我想获得与以下 curl 调用等效的 RCurl:

curl -H "AUTH-KEY: soanclCNdnLDcnlNc" -H "Content-Type: application/json" -X POST -d '{"documents":["http://localhost:3000/documents/2","http://localhost:3000/documents/4"]}' http://localhost:3000/documents/download?format=zip

我设法从中得到了一些东西,但它总是比 curl 调用产生的更大,并且无法解压缩:,并且我一生都无法找出它是什么。
x= list(items=c("http://localhost:3000/documents/2", "http://localhost:3000/documents4"))
headers <- list('AUTH-KEY' = "soanclCNdnLDcnlNc", 'Accept' = 'application/json', 'Content-Type' = 'application/json')
postForm("http://localhost:3000/documents/download?format=zip", .opts=list(postfields=toJSON(x), httpheader=headers))

最佳答案

虽然现在有更高级的软件包,但 RCurl 仍然诚实地工作。

通常在 RCurl 中重新映射:

curl -H "AUTH-KEY: xxxx"  \
     -H "Content-Type: "application/x-www-form-urlencoded" \
     -d '{"key1": "value1","key2": "value2"}' \
     "https://httpbin.org/post"

(相应地调整您的标题和字段)

你用:
hdr=c(Authorization="xxxx", `Content-Type`="application/x-www-form-urlencoded")
flds='{"key1": "value1","key2": "value2"}'
postForm("https://httpbin.org/post",
        .opts=list(httpheader=hdr, postfields=flds))

请注意 Content-Type 的反引号以逃避减号。

关于带有 header 和 JSON 数据的 RCurl POST 请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20647590/

10-10 11:56