【发布时间】:2019-03-05 10:06:06
【问题描述】:
我想使用 httr 包发送一个在正文中包含一些变量的发布请求。
如果是 JSON 格式,正文会是什么样子:
{a:"1", b:"2", c:[{d:"3", e:"4"}]}
我对 httr::POST() 的尝试
r <- POST("http://httpbin.org/post", body = list(a = 1, b = 2, c = list(d=3, e=4)))
我得到的错误:
Error in curl::handle_setform(handle, .list = req$fields) :
Unsupported value type for form field 'c'.
我需要如何构造我的 POST() 语句以按照上面提到的格式发送它?
编辑:在尝试@renny 的解决方案时(我添加了 verbose() 以提高可见性),即以下行
r <- POST("http://httpbin.org/post", body = json_array, encode="json", verbose())
我能够观察到输出中生成的 JSON 格式如下:
{"post":{"a":1,"b":2,"c":{"d":3,"e":4}}}
如您所见,“c”变量周围没有 [],而是有一个“post”变量。以下是我想要的。
{"a":1,"b":2,"c":[{"d":3,"e":4}]}
【问题讨论】: