私のせいです。実際には、HTTP 仕様で要求されているように、 DefaultHttpClient
do はヘッダーを追加します。Host
私の問題は、値が「\r\n
」で終わる前に追加していた他のカスタムヘッダーが原因でした。これにより、 によって自動的に追加された後続のすべてのヘッダーが無効になりましたDefaultHttpClient
。私は次のようなことをしていました:
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);
HTTP リクエストで次のヘッダー シーケンスを生成しました。
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