我正在使用R中的httr包尝试查询postcode.io API(http://postcodes.io/docs)。httr对API的POST请求返回400错误
我可以成功查询单个邮政编码按照使用说明: sample4 <- GET("api.postcodes.io/postcodes/EN14RF")
当我尝试和查询多个邮政编码我变得有点粘住。 postcode.io指令建议
POST https://api.postcodes.io/postcodes?q=[postcode]
其中指定了包含邮编数组的JSON对象。我有一个包含我试图转换成JSON对象,例如与邮政编码的R矢量:
a <- toJSON(a)
在我的[R向量“a”是:
structure(c(4L, 5L, 3L, 6L, 1L, 2L), .Label = c("Bn14 9aw", "CR0 4BE", "E5 8HB", "EN1 4RF", "G42 8QN", "SA1 3UL"), class = "factor")
现在,当我尝试和查询用下面的代码行的API:
sample4 <- POST("https://api.postcodes.io/postcodes?q=[postcode]", body = list(postcode = add1JSON))
我得到一个错误:"Invalid JSON submitted. You need to submit a JSON object with an array of postcodes or geolocation objects"
我有一种感觉,这是因为我没有提供一个数组,而是一个未命名的列表,例如我的JSON对象应该是这样的:
{"postcodes":"[ \"EN14RF\", \"G428QN\", \"E58HB\", \"SA13UL\", \"Bn149aw\", \"CR04BE\" ]"}
不是这个:"[ \"EN14RF\", \"G428QN\", \"E58HB\", \"SA13UL\", \"Bn149aw\", \"CR04BE\" ]"
谁能帮助我?我感觉它是与我的toJSON
电话,但一直无法在论坛或API开发者网页上:(
非常感谢找到类似的例子
马蒂
@hrbmstr感谢了一堆,作品真的很好 –
我对写得不好的道歉API文档。我修改了它们 - 特别提到POST请求应该有内容类型的'application/json' –