【发布时间】:2020-01-03 23:01:02
【问题描述】:
主要出于我自己的理解,您如何使用 RCurl 或 httr 将以下玩具 CURL 示例翻译成 R:
curl -v -X POST \
https://someurl/endpoint \
-H "Content-Type: application/json" \
-H 'X-Api-Key: abc123' \
-d '{"parameters": [ 1, "foo", "bar" ]}'
除了简单的 GET 请求之外,我发现这两个包都有些尴尬。
我试过了:
library(httr)
POST("https://someurl/endpoint", authenticate("user", "passwrd"),
body = '{"parameters": [ 1, "foo", "bar" ]}', content_type_json())
获得 400 状态。我的 Curl 版本完美运行。
也试过了:
POST("https://someurl/endpoint", add_headers('X-Api-Key: abc123'),
body = '{"parameters": [ 1, "foo", "bar" ]}', content_type_json())
同时获得 400 状态。
我很确定问题在于设置标题。
【问题讨论】:
-
好吧,一方面,我不能在标题的名称值对中使用破折号。
-
您是否尝试将正文作为 R 列表传递
body = list(parameters = list(1, "foo", "bar" )) -
是的,我试过了,但没有成功。我认为问题在于设置标题。例如,您将如何使用 add_headers 设置标题?
-
你能分享实际的网址和参数吗?更容易调试。另外,如果您在标头中传递密钥,我想您不想通过
authenticate()传递基本身份验证