R:客户端错误:请求URI太长

时间:2016-08-20 20:36:23

标签: r api url

我正在使用的R包genderizeR,每月限制为免费计划的1000个条目。该函数通过API连接到genderize.io数据库。

所以我购买了月度限额较大的商业计划,并使用R中的API密钥:

  

genderizeAPI(vector,apikey =" my_api_key")

但是,我收到以下错误代码:

  

客户端错误:(414)Request-URI太长

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

代码正在执行此操作:

query <- as.list(x)
names(query) <- paste0("name[", 0:(length(x) - 1), "]")
if (!is.null(apikey)) {
  query <- c(apikey=apikey, query)
}
r <- httr::GET("https://api.genderize.io", 
               query = query, 
               httr::config(ssl_verifypeer=ssl.verifypeer))

构建要发送到API的查询。它最终翻译成:

genderizeAPI(c("jan", "maria", "norbert"))

成:

https://api.genderize.io?name[0]=jan&name[1]=maria&name[2]=norbert

这意味着(最终)你将一个过大的向量传递到genderizeAPI()调用中。

“{em>} clearly states ”每个请求的API最多限制为10个名称

确保传入的矢量是&lt; = 10个元素。坦率地说,一个更好的API包会解释这一点,我倾向于(如果我是你)向作者https://github.com/kalimu/genderizeR/issues提交错误报告/功能增强。