2017-02-08 3 views
0

Wenn ich eine API vom Browser aus aufrufen, wird ein Statuscode von 200 und ein JSON-Objekt zurückgegeben. Allerdings, wenn ich die API von Java/JSoup aufrufe, gibt es einen Statuscode 500 und "HTTP Fehler beim Abrufen der URL, Status = 500"API gibt 200 für Browser und 500 für Jsoup zurück

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

Ich würde Web-Entwickler-Tools verwenden, um genau zu sehen, was vom Browser und JSoup gesendet wird und sehen, was die Unterschiede sind. Wahrscheinlich beeinflusst ein Header die Antwort. –

Antwort

1

in Ihrem Browser verwenden, um den Entwicklermodus Details des HTTP anzuzeigen anfordern.

Wenn Ihr Java-Programm ausgeführt wird, ein Debug-Log der HTTP-Anforderung erhalten (siehe: Jsoup http logging)

Vergleichen jedes Detail der Anfrage - stellen Sie sicher, alle Header gleich sind, oder dass Sie sicher sind, Sie sind nicht relevant.

Wenn Sie Zugriff auf den Server haben, suchen Sie im Serverprotokoll nach Nachrichten, die Details zur Ursache der enthalten.

Verwandte Themen