我正在编写一个API包装程序,以使用httr
程序包查询英国邮政编码,并且在使用GET
请求时一切正常。在使用POST
请求时,我有些失落。
API的文档说明如下:
接受包含邮政编码数组的JSON对象。返回匹配的邮政编码和相应可用数据的列表。
最多接受100个邮政编码。
POST https://api.postcodes.io/postcodes?q= [邮政编码]
发布数据
此方法需要包含要发布的邮政编码阵列的JSON对象。例如
{“邮政编码”:[“ PR3 0SG”,“ M45 6GN”,“ EX165BL”]}
我尝试了以下方法:
library(httr)
pc_json <- '{
"postcodes" : ["PR3 0SG", "M45 6GN", "EX165BL"]
}'
r <- POST(paste0("https://api.postcodes.io/postcodes?q=", pc_json, encode = "json"))
但它返回以下内容:
$状态1 400
$ error 1 “提交的JSON无效。您需要提交带有邮政编码或地理位置对象数组的JSON对象”
当我修剪数组并使用它时,也会发生相同的情况:
r <- POST("https://api.postcodes.io/postcodes?q=EX165BL")
content(r)
我在这里和这里都读过类似的主题,但是它们并没有使我的问题更容易解决。
任何想法如何解决?
您几乎只需要将邮政编码格式设置为列表,并使用body参数,POST
然后将其编码为json
:
library(httr)
pc_json <- list(
postcodes = c("PR3 0SG", "M45 6GN", "EX165BL")
)
res <- POST("https://api.postcodes.io/postcodes"
, body = pc_json
, encode = "json")
appData <- content(res)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句