我正在使用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' –