我正在使用的R包genderizeR,每月限制为免费计划的1000个条目。该函数通过API连接到genderize.io数据库。
所以我购买了月度限额较大的商业计划,并使用R中的API密钥:
genderizeAPI(vector,apikey =" my_api_key")
但是,我收到以下错误代码:
客户端错误:(414)Request-URI太长
知道如何解决这个问题吗?
答案 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提交错误报告/功能增强。