6

4.1.3を使用しHttpClientて、次のコードを記述しました。

HttpClient httpClient = HttpClientFactory.newHttpClient();
HttpGet httpGet = new HttpGet("some/url/to/hit");
HttpResponse httpResp = httpClient.execute(httpGet);
int statusCode = httpResp.getStatusLine().getStatusCode();
if(statusCode != HttpStatus.SC_OK)
    throw new Exception(/* ... */);

これは、特定の URL から HTTP 500 応答 ( をhttpResp.getStatusLine().getStatusCode()参照) を取得し、例外をスローしています。

問題は、ブラウザで「失敗した」URL にアクセスすると、完全に正常に動作することです。

だから私は尋ねます:

  • タイムアウトHttpClientになり、リクエストとレスポンスのサイクルが短くなり、HTTP 500 になっている可能性はありますか?
  • ここで他に何が起こっているのでしょうか?HttpClientブラウザがまったく同じ URL に対して完全に問題なくページを表示しているのに、どうすれば500 秒を返すことができるのでしょうか?

前もって感謝します!

4

2 に答える 2

2

私も同じ問題を抱えていました。ブラウザ経由で Web サイトにアクセスできましたが、Apache http クライアントを使用すると、一貫して http 500 内部サーバー エラーが発生しました。問題は「Content-Type」GET ヘッダーでした。一部のサーバーが気に入らないように見える「multipart/related」という値がありました。「text/html」に変更したところ、すべて正常に機能しました。

お役に立てれば。

于 2012-12-15T14:06:48.813 に答える