2017-02-08 9 views
0

Когда я вызываю API из браузера, он возвращает код состояния 200 и объект JSON. Однако, если я вызываю API из Java/JSoup, он возвращает код состояния 500 и «Ошибка HTTP выборки URL, Status = 500»API возвращает 200 для браузера и 500 для Jsoup

String json = Jsoup.connect(url) 
    .ignoreContentType(true) 
    .timeout(5000) 
    .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2") 
    .ignoreContentType(true) 
    .execute() 
    .body(); 
System.out.println(json); 
+0

Я бы использовал инструменты веб-разработчика, чтобы точно видеть, что отправляется браузером и JSoup, и посмотреть, что это за различия. Вероятно, какой-то заголовок влияет на ответ. –

ответ

1

В вашем браузере, используйте режим разработчика, чтобы просмотреть подробную информацию о HTTP запрос.

При запуске вашего Java-программы, получить журнал отладки запроса HTTP (см Jsoup http logging)

Сравните каждую деталь запроса - убедитесь, что все заголовки одинаковы, или что вы уверены, они не актуальны.

Если у вас есть доступ к серверу, найдите сообщения в журнале сервера, в котором даны подробные сведения о причине 500.