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)
提前致谢
答案 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);
这可能有用。这对我有用。