我将通过DefaultHttpClient提交多个HTTP请求。问题在于请求中的"Host"头部从未被设置。例如,执行以下GET请求:
生成的请求对象没有设置"Host"标头的强制值:
HttpUriRequest request = new HttpGet("http://www.myapp.com");
org.apache.http.client.HttpClient client = new DefaultHttpClient();
HttpResponse httpResponse = client.execute(request);
生成的请求对象没有设置"Host"标头的强制值:
Host: myapp.com
有什么提示吗?
Base64.DEFAULT
对头部值进行了Base64编码,其中包括行终止符。结果是,在自定义头之后的所有键值对都被搞乱了(当通过代理运行请求时甚至看不到它们)。切换到Base64.NO_WRAP
解决了我的问题,因为它省略了所有行终止符(也就是说,输出是一行长的)。 - MH.