Java 용 Google HTTP Client Library (1.22.0)에 문제가 있습니다. 이) (내 코드Java 용 Google HTTP 클라이언트 라이브러리에서 HttpResponseException : 301 Moved Permanently
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();
및 httpRequest.execute입니다 몇 번 Wireshark를
GET /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
에서 따라 반복되는 다음
com.google.api.client.http.HttpResponseException: 301 Moved Permanently
가 발생합니다. location
이 /ogl/2502758/pakowacz+-+mile+widziane+panie
이고 다음 요청 방법이 /ogl/2502758/pakowacz%20-%20mile%20widziane%20panie
이므로 URL에 문제가있는 것일 수 있습니다. 다른 소프트웨어 및 라이브러리에서는 모든 것이 작동합니다 (Google 크롬 브라우저, 우편 배달부 - 크롬 추가 기능, JSOUP - 자바 라이브러리).
누구든지 문제를 해결하는 방법을 알고 있습니까?
훌륭한 기술 정보를 보내 주셔서 감사합니다. 이 경우에는 무엇인가 할 수 있습니까? 내가 사용하는 라이브러리 (구글 HTTP 클라이언트) 잘 작동하지만 원격 서버를 이해하지 않습니다. 30x를 받으면 다른 라이브러리를 사용할 생각이 있습니다. 당신이 그것에 대해 어떻게 생각하십니까? –
이 라이브러리의 소스 코드를 파고 들자면'HttpRequest' 클래스의 인스턴스 메소드'setFollowRedirects (boolean)'에 의해 설정할 수있는 인스턴스 변수'followRedirects'가있는 것처럼 보입니다). 그래서 그것을 false로 설정하고 응답의'Location' 헤더를 가져 와서 리디렉션을 따르십시오. –
나는 이것을 전에 설정했다. (내 메인 포스트를 참조) –