2014-11-05 3 views
2

Алхимия API используется в моей программе для извлечения ключевых слов и отношений из URL.Алхимия api в java получает исключение для URLGetRelations()

При извлечении этих из API вызовов я получаю ошибку следующим образом,

'java.io.IOException: Error making API call: cannot-retrieve:downstream-http-error:404. at com.alchemyapi.api.AlchemyAPI.doRequest(AlchemyAPI.java:960) at com.alchemyapi.api.AlchemyAPI.GET(AlchemyAPI.java:914) at com.alchemyapi.api.AlchemyAPI.URLGetRankedKeywords(AlchemyAPI.java:234) at 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 причиной error.I называется отношение API просто положить URL в качестве следует.

Документ doc = alchemyObj.URLGetRelations ("http://venturebeat.com/2014/10/22/microsoft-and-ibm-partner-to-bring-enterprise-software-to-their-respective-cloud-platforms/");

У нас нет ошибок. Что на самом деле происходит здесь?

Я нашел на некоторых веб-сайтах, которые «невозможно получить: downstream-http-error: 404» происходит из-за неверного URL-адреса, переданного в качестве аргумента. Из 50 URL-адресов, которые я тестировал 7 URL-адрес показывает ошибку. Работает нормально. И снова, когда я извлекаю URL-строку, помещенную в качестве аргумента, 7 URL тоже отлично работает.

(URL проанализирован из документа Excel, используя POI API)

заранее спасибо

ответ

1

Как вы сказали

'java.io.IOException: Error making API call: cannot-retrieve:downstream-http-error:404'

Исключение вызвано неправильным URL аргумента в вызове функции (ie.URLGetRankedKeywords()) Поскольку URL является синтаксический d из документа EXCEL несколько раз символ '\ r' может присутствовать в конце ячейки. Если присутствует, это приведет к тому, что URL недействителен. Что вы можете сделать, это удалить все символы '\ r' из URL, прежде чем передавать его на вызов API.

т.е.

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

Это может work.it работал для меня.

+0

Спасибо, что сработало –