如何使用R来使用TextRazor API分析文本?

时间:2015-11-16 14:35:06

标签: r api curl httr

我是使用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

我只是不知道自己做错了什么。

我非常感谢你的帮助。提前谢谢。

1 个答案:

答案 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