私は、ネットワークコール用にHttpResponseを使用するアプリケーションで作業しています。HttpResponseが502エラーを返し、エンドポイントにヒットしないようです。
時々(約30%の時間)ネットワークコールは、サーバーから戻る502で失敗するようです。サーバーログをチェックすると、サーバーは要求を受信していないように見えます。
しかし、ロジックは悪くはないように見えますが、ほとんどの場合動作します。私はJSON経由でサーバーと通信しています。
HttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(BASE_URL + endpoint)
...add json entity
method.addHeader("content-type", "application/json");
method.addHeader("accept", "application/json");
....この呼び出しが失敗についての興味深い事は、それはデバイス間でまったく同じコールだということであり、それは当たっていますサーバが20フィートであるクライアント/方法
protected HttpResponse invoke(HttpClient client, HttpUriRequest method) throws ServiceException {
HttpResponse response = null;
try {
response = client.execute(method);
} catch (//catch statements here ....)
int status = response.getStatusLine().getStatusCode();
//status = 502
}
関数w下に呼び出します別の状態にある別のサーバーで発生します。
私はそれが時々動作する理由はわかりませんが、他のものは見えません。
wiresharkを実行すると、サーバーが502を送り返していることがわかりました。考えてくれてありがとう、私は今より大きな問題があるように見える:/ –
だから、502はあなたのサーバーから来ているので、Webサーバーのログはその要求に対して何を言っているのですか?受信したリクエストをwiresharkで監視し、すべての要素(ヘッダーとコンテンツ)を確認して説明を求めます。私はスイッチがヘッダーをマングルするのを見ました。また、DevBoxをサーバーに直接接続することもできます(中間の問題は除外されます) – stimpy