Alchemy API в java получает исключение для URLGetRelations()

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

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

'java.io.IOException: ошибка при вызове API: невозможно получить: нисходящая http-ошибка: 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-адрес следующим образом..

Document 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 анализируется из документа Excel с использованием POI API)

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


person Sreeraj Karichery    schedule 05.11.2014    source источник


Ответы (1)


Как ты сказал

'java.io.IOException: ошибка при вызове API: невозможно получить: нисходящая http-ошибка: 404'

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

ie ,

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

Это может сработать. Это сработало для меня.

person Lygub Org    schedule 06.11.2014