【发布时间】:2019-07-10 14:48:51
【问题描述】:
我正在尝试使用httr::POST 发出包含数据和标头信息的 POST 请求。我可以看到 how to make a POST request,但我无法让它与 curl 的数据 (-d) 和标题 (-H) 选项一起使用。
这在我的终端中完美运行(显然使用不同的数据/api,但格式完全相同)
curl -H "Accept: application/json" -H "Content-type: application/json" -d '{"name": "Fred", "age": "5"}' "http://www.my-api.com"
问题
如何使用httr::POST 发出上述 POST 请求(带有标头和数据)?
到目前为止我已经尝试过什么
library(jsonlite)
my_data <- list(name="Fred", age="5") %>% toJSON
post_url <- "http://www.my-api.com"
r <- POST(post_url, body = my_data) # Data goes in body, I guess?
stop_for_status(r)
我明白了
Error: Bad Request (HTTP 400).
进一步检查r
r
Response ["http://www.my-api.com"]
Date: 2019-07-09 17:51
Status: 400
Content-Type: text/html; charset=UTF-8
<EMPTY BODY>
【问题讨论】:
-
你看过文档吗?
?httr::POST引用了httr::add_headers,其中有例子,intro vignette -
这对我有用。也许这是您的软件包版本?我有 httr 1.4.0、jsonlite 1.6、curl 3.2
-
@camille 谢谢。我已经检查了两者,但没有意识到
add_headers可以使用httr::GET以外的功能。非常感谢