Я использую сторонний Java API для получения результатов от Google Search Appliance в моем веб-проекте Spring. URL-адрес построенного API выглядит правильно. Я отправил запрос на веб-браузер с сгенерированным URL-интерфейсом API и работал (результаты поиска вернулись правильно). Более того, я пробовал URL с автономным Java-проектом, который я создал, чтобы получить InputStream, и он тоже работал. Проблема возникает, когда я пытаюсь получить результаты в своем проекте. Он падает на этапе создания InputStream и дает эту ошибку:Http 502 Ошибка при попытке получить InputStream в моем проекте Spring
java.io.IOException: Server returned HTTP response code: 502 for URL: http://myIP:80/search?access=p&output=xml&client=default_frontend&lr=lang_en&num=100&requiredfields=gsaentity_language%3AEnglish&site=default_site
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1626)
at java.net.URL.openStream(URL.java:1037)
at net.sf.gsaapi.GSAClient.search(Unknown Source)
at net.sf.gsaapi.GSAClient.getGSAResponse(Unknown Source)
at net.sf.gsaapi.GSAClient.getGSAResponse(Unknown Source)
вещей, которые я пробовал, которые не работали для меня до сих пор:
- я использовал интерфейс API, (переопределение) для обработки HttpConnection и создания InputStream вручную. Через этот интерфейс некоторые параметры прокси могут быть добавлены в HttpConnection. (Интерфейс с именем GSAClientDelegate с методом getResponseStream)
- Я проверил коды API в случае обнаружения чего-то, что вызывало проблемы с прокси-сервером и т. Д. Я не мог найти ничего подобного.
- Как указано в ответе, я проверил имена коллекции, frontend, proxystylesheet, и они в порядке. В противном случае я не смог бы достичь результатов через веб-браузер или автономный проект Java прямо?
Прошло почти 1 неделю. Я продолжаю сталкиваться с этой досадной и загадочной ошибкой, и я начинаю сходить с ума.
Что я могу сделать по этой проблеме?
Я пришел к выводу, что это не имеет ничего общего с API (я исследовал каждую строку исходного кода API). Теперь у нас есть последнее, что нужно рассмотреть: Spring MVC framework. Причина в том, что я создал InputStream на свой собственный код и отправил его в функцию анализатора SAX XML parser, снова появилась ошибка при создании объекта InputStream. Это действительно логично. – metzelder
Я был бы несколько удивлен, если API создал 502.Я мог видеть 500 (любое исключение выбрано), но 502 - это то, что связано с фактическим сервером (шлюзом или прокси), поддерживающим API. Борьба с исходным кодом не вызовет ничего очевидного. Вы получаете 502 последовательно, не так ли? – Makoto
Невозможно сказать. Я видел 407 (ошибка аутентификации) редко. – metzelder