私のせいです。実際には、DefaultHttpClient
は、HTTP仕様で要求されているように、Host
ヘッダーを追加します。
私の問題は、値が "\r\n
"で終わる前に追加していたカスタムヘッダーが原因でした。これにより、その後に自動的に追加されるすべてのヘッダーが無効になりました。DefaultHttpClient
。 HTTPリクエストに次のヘッダー・シーケンスを生成
HttpUriRequest request = new HttpGet("http://www.myapp.com");
org.apache.http.client.HttpClient client = new DefaultHttpClient();
request.addHeader(new BasicHeader("X-Custom-Header", "Some Value\r\n");
HttpResponse httpResponse = client.execute(request);
:
GET /index.html HTTP/1.1
X-Custom-Header: Some value
Host: www.example.com
スペースX-Custom-Header
間とHost
はHost
ヘッダを無効 私のような何かをやっていました。生成
HttpUriRequest request = new HttpGet("http://www.myapp.com");
org.apache.http.client.HttpClient client = new DefaultHttpClient();
request.addHeader(new BasicHeader("X-Custom-Header", "Some Value");
HttpResponse httpResponse = client.execute(request);
:
GET /index.html HTTP/1.1
X-Custom-Header: Some value
Host: www.example.com
良いキャッチ!私の場合(Androidの場合)、私はBase64を['Base64.DEFAULT'](http://developer.android.com/reference/android/util/Base64.html#DEFAULT)でヘッダ値をエンコードしていました。 。その結果、カスタムヘッダーの後ろにあるすべてのキーと値のペアが乱されました(プロキシを介してリクエストを実行しても表示されません)。 ['Base64.NO_WRAP'](http://developer.android.com/reference/android/util/Base64.html#NO_WRAP)に切り替えると、すべての行ターミネータが省略されているので、私の問題は解決しました(つまり、出力は1つです長い行)。 –