이것은 약간 이상한 것입니다. 나는 HTTPClient 4.1.2를 사용하고 있는데, URL에 '#'과 같은 URL이있을 때마다 URL에서 #과 함께 전체를 얻는다.HTTPClient - 리디렉션 URL에 # 앵커가있는 HTTP GET이 깨졌습니다.
예를 들어 URL http://stks.co/eWt
을 얻으려고하면 URL http://news.ichinastock.com/2011/10/jack-ma-alibaba-has-prepared-20-billion-to-acquire-yahoo/#.Tpw-xG61XjU.twitter
으로 리디렉션됩니다. 이제이 URL은 라이브 상태이지만 문제는 HTTPClient가 URI가 URI: /2011/10/jack-ma-alibaba-has-prepared-20-billion-to-acquire-yahoo/#.Tpw-xG61XjU.twitter
으로 설정된 요청을 보내 서버가 404 페이지를 다시 보낼 수있게하는 것입니다.
IE, Firefox 및 cURL에서 보낸 GET을 보면 URI 끝에서 # ...을 제거하므로 예를 들어 cURL GET 요청 URI는 URI로 설정됩니다. /2011/10/jack-ma-alibaba-has-prepared-20-billion-to-acquire-yahoo/
- 모든 # ... 제거되었습니다. 이것은 정확히 동일한 입력 URL http://stks.co/eWt
입니다.
테스트에서 원시 URL을 HTTPClient (즉, HttpGet httpget = new HttpGet("http://news.ichinastock.com/2011/10/jack-ma-alibaba-has-prepared-20-billion-to-acquire-yahoo/#.Tpw-xG61XjU.twitter");
)로 보내면 동일한 404 찾을 수없는 결과가 나타납니다.
그래서 문제는 URL 클라이언트에서 후행 # ... 같은 항목을 자동으로 제거 할 수 있도록 설정할 수있는 HTTPClient의 설정입니다. 또는 URL에서 수동으로 제거하는 방법 (모든 리디렉션 URL도 캡처해야 함)
.. : //stackoverflow.com/questions/4251841/400-error-with-httpclient-for-a-link-with-an-anchor –
그래, 이걸 봤어.하지만 문제는 URL에 # 앵커가 있는지 모른다는 것이다. 모든 UR Ls는 짧은 URL 서비스에서오고 있습니다.이 짧은 URL 서비스는 URL에 #anchor를 유지하고 HTTPClient는 맹목적으로 리디렉션 301에서이를 가져 와서 페이지를 가져 오려고 시도합니다. – NightWolf