Ich habe ein Problem mit der Google HTTP-Clientbibliothek für Java (1.22.0). Dies ist mein CodeGoogle HTTP-Clientbibliothek für Java löst HttpResponseException aus: 301 wurde dauerhaft verschoben
String url = "http://gazetapraca.pl/ogl/2502758";
GenericUrl genericUrl = new GenericUrl(url);
ApacheHttpTransport apacheHttpTransport = new ApacheHttpTransport();
HttpRequest httpRequest = apacheHttpTransport.createRequestFactory().buildGetRequest(genericUrl);
httpRequest.setFollowRedirects(true);
HttpResponse httpResponse = httpRequest.execute();
und httpRequest.execute() throws
com.google.api.client.http.HttpResponseException: 301 Moved Permanently
Unterhalb von Wireshark
ein paar MalGET /ogl/2502758 HTTP/1.1
Accept-Encoding: gzip
User-Agent: Google-HTTP-Java-Client/1.22.0 (gzip)
Host: gazetapraca.pl
Connection: Keep-Alive
HTTP/1.1 301 Moved Permanently
Date: Sat, 26 Nov 2016 22:15:52 GMT
Server: Apache
Location: /ogl/2502758/pakowacz+-+mile+widziane+panie
Content-Length: 0
Set-Cookie: JSESSIONID_JOBS=2f1TffY6JYcb6zvBSrQ72fds7rfdsSnHM3sefw6D31Lfr434bnkDmdLQJLvLFZ6zkYBF!-12116034235597; path=/; HttpOnly
Content-Language: pl
P3P: CP="NOI DSP COR NID PSAo OUR IND"
Vary: User-Agent
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
GET /ogl/2502758/pakowacz%20-%20mile%20widziane%20panie HTTP/1.1
Accept-Encoding: gzip
User-Agent: Google-HTTP-Java-Client/1.22.0 (gzip)
Host: gazetapraca.pl
Connection: Keep-Alive
Cookie: JSESSIONID_JOBS=2f1TffY6JYcb6zvBSrQ72fds7rfdsSnHM3sefw6D31Lfr434bnkDmdLQJLvLFZ6zkYBF!-12116034235597
HTTP/1.1 301 Moved Permanently
Date: Sat, 26 Nov 2016 22:15:52 GMT
Server: Apache
Location: /ogl/2502758/pakowacz+-+mile+widziane+panie
Content-Length: 0
Content-Language: pl
P3P: CP="NOI DSP COR NID PSAo OUR IND"
Vary: User-Agent
Keep-Alive: timeout=2, max=99
Connection: Keep-Alive
und wiederholen wird folgen. Vielleicht ist das Problem mit der URL, weil location
ist /ogl/2502758/pakowacz+-+mile+widziane+panie
und nächste Anfrage Methode erhalten ist /ogl/2502758/pakowacz%20-%20mile%20widziane%20panie
. In anderer Software und Bibliothek funktioniert alles (Google Chrome Browser, Postbote - Addon zu Chrome, JSOUP - Java Library).
Hat jemand eine Idee, wie man das Problem löst?
Vielen Dank für großartige technische Informationen. In diesem Fall kann ich etwas tun? Ich verstehe, dass die Bibliothek, die ich verwende (Google http Client) funktioniert gut, aber Remote-Server nicht. Ich habe eine Idee, eine andere Bibliothek zu verwenden, wenn ich 30x erhalte. Was denkst du darüber? –
Nach dem Stöbern im Quellcode dieser Bibliothek sieht es so aus, als gäbe es eine Instanzvariable 'followRedirects', die Sie mit der Instanzmethode' setFollowRedirects (boolean) 'der Klasse' HttpRequest' (die Sie in Ihrem Code haben) setzen können). Setzen Sie das vielleicht auf false und folgen Sie der Umleitung, indem Sie den 'Location'-Header der Antwort erhalten. –
Ich habe das schon mal eingestellt (siehe meinen Hauptbeitrag) –