java中的Alchemy api获取URLGetRelations()的异常

时间:2014-11-05 08:05:23

标签: java exception alchemyapi

Alchemy API在我的程序中用于从URL中提取关键字和关系。

从API调用中提取这些内容时,我得到如下错误,

  

' java.io.IOException:发出API调用时出错:无法检索:downstream-http-error:404。       在com.alchemyapi.api.AlchemyAPI.doRequest(AlchemyAPI.java:960)       在com.alchemyapi.api.AlchemyAPI.GET(AlchemyAPI.java:914)       在com.alchemyapi.api.AlchemyAPI.URLGetRankedKeywords(AlchemyAPI.java:234)       在com.alchemyapi.api.AlchemyAPI.URLGetRankedKeywords(AlchemyAPI.java:224)       at innointel.feature1.Article.alchemyCall(Article.java:477)'

然后我发现" http://venturebeat.com/2014/10/22/microsoft-and-ibm-partner-to-bring-enterprise-software-to-their-respective-cloud-platforms/"是导致错误的URL。我调用关系API只是将URL放在如下..

文档doc = alchemyObj.URLGetRelations(" http://venturebeat.com/2014/10/22/microsoft-and-ibm-partner-to-bring-enterprise-software-to-their-respective-cloud-platforms/");

现在好了,它没有错误。这里到底发生了什么?

我在一些网站上发现"无法检索:下游-http:错误:404"是由于作为参数传递的无效URL。 超出50个URL我测试7 URL显示错误.Remaining工作正常。再次当我提取URL字符串放置它作为参数7 URL工作正常..

(使用POI API从Excel文档中解析URL)

提前致谢

1 个答案:

答案 0 :(得分:1)

正如你所说

  

' java.io.IOException:发出API调用时出错:无法检索:downstream-http-error:404'

异常是由函数调用中的错误URL参数引起的(ie.URLGetRankedKeywords()) 由于URL是从EXCEL文档中解析的,因此有时候' \ r'字符可能出现在单元格的末尾。如果存在,这将使URL 无效。 你可以做的是,删除所有' \ r'在将其传递给API调用之前,URL中的字符。

即,

url = url.replaceAll("\r", "");
Document doc = alchemyObj.URLGetRelations(url);

这可能有用。这对我有用。