我正在编写API wrapper以使用httr
包查询英国邮政编码,当我使用GET
请求时,一切正常。我在使用POST
请求时略有丢失。
以下是API documentation所说的内容:
接受包含邮政编码数组的JSON对象。返回一个列表 匹配邮政编码和各自的可用数据。
最多可接受100个邮政编码。
POST https://api.postcodes.io/postcodes?q=[postcode]
发布数据
此方法需要一个包含邮政编码数组的JSON对象 被张贴。 E.g。
{" postcodes" :[" 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"))
但它返回了这个:
$ status 1 400
$ error 1&#34;提交的JSON无效。您需要提交一个JSON对象 带有一系列邮政编码或地理定位对象&#34;
当我修剪数组并使用它时会发生同样的情况:
r <- POST("https://api.postcodes.io/postcodes?q=EX165BL")
content(r)
我读过类似的帖子here和here,但他们并没有让我的问题更容易解决。
任何想法如何解决?
答案 0 :(得分:6)
您几乎只需要将邮政编码格式化为列表并使用select to_char(to_timestamp('08/01/2016 09:16:47.000000000 AM', 'MM/DD/YYYY HH:MI:SS.FF AM'),'MM/DD/YYYY HH:MI:SS AM') from dual;
的body参数然后编码为select to_char(to_timestamp('08/01/2016 09:16:47.000000000 PM', 'MM/DD/YYYY HH:MI:SS.FF AM'),'MM/DD/YYYY HH:MI:SS AM') from dual;
:
POST