【问题标题】:Alchemy api in java gets exception for URLGetRelations()Java 中的 Alchemy api 获取 URLGetRelations() 异常
【发布时间】:2015-01-01 08:31:12
【问题描述】:

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

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

'java.io.IOException: 调用 API 时出错:cannot-retrieve: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) 在 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/");

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

我在一些网站上发现“cannot-retrieve:downstream-http-error:404”是由于作为参数传递的 URL 无效。 在 50 个 URL 中,我测试了 7 个 URL 显示错误。剩余工作正常。当我再次提取 URL 字符串时,将其作为参数 7 URL 工作正常。..

(URL是使用POI API从excel文档中解析出来的)

提前致谢

【问题讨论】:

    标签: java exception alchemyapi


    【解决方案1】:

    如你所说

    'java.io.IOException: 调用 API 时出错:cannot-retrieve:downstream-http-error:404'

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

    即,

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

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

    【讨论】:

      猜你喜欢
      • 2015-07-29
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多