我是使用API的新手,我希望你能帮助我。 我试图通过R中的httr包向TextRazor API发送POST请求但是我没有让它工作。我做错了什么?
library(httr)
library(RCurl)
key <- "MY API KEY"
text <- "text=Spain's stricken Bankia expects to sell off its vast portfolio of industrial holdings that includes a stake in the parent company of British Airways and Iberia"
extractors <- "&extractors=entities"
doc <- POST("https://api.textrazor.com",
add_headers("x-textrazor-key" = key),
body = paste0(text, extractors)
)
doc
Response [https://api.textrazor.com/]
Date: 2015-11-16 14:29
Status: 200
Content-Type: application/json
Size: 3.07 kB
当我运行此代码时,我得到状态代码200,这是好的。但不知何故,结果(doc)没有名为“response”的列表元素。
可在此处找到API文档https://www.textrazor.com/docs/rest
我只是不知道自己做错了什么。
我非常感谢你的帮助。提前谢谢。
答案 0 :(得分:2)
您需要确保请求正文已正确编码,以便服务器可以解析它。 'httr'包允许您传入一个参数列表并在内部处理编码,从而简化了这一过程。以下对我有用:
doc <- POST("https://api.textrazor.com",
add_headers("x-textrazor-key" = key),
body = list(text=raw_text, extractors="entities"),
encode = "form")
content(doc)$response$entities[[1]]$entityId