我想将身份验证标头添加到我的请求中。我正在使用来自 Apache httpclient 4.0 的 DefaultHttpClient。
我发现这是这样做的:
URI uri = new URI("http://www.bla.bla/folder/");
String host = uri.getHost();
int port = uri.getPort();
httpClient.getCredentialsProvider().setCredentials(
new AuthScope(host, port, AuthScope.ANY_SCHEME),
new UsernamePasswordCredentials("myuser", "mypassword")
);
这是执行的,即使使用调试器,我也看到 httpClient 的一些凭据变量是在执行请求时设置的。但我用查尔斯检查网络流量,没有身份验证标头。
变量的内容:
主持人:www.bla.bla
端口:-1
顺便提一句。我启用了 Charles 作为代理来查看请求的标头,其中:
HttpHost proxy = new HttpHost("127.0.0.1", 8888, "http");
httpParameters.setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
我认为这不应该改变我的标题,对 webproxy 毫无意义......无论如何,如果我禁用代理的东西它也不起作用(虽然我看不到标题的内容,但我想它是一样的原因)。
还尝试使用 Softhinker.com 的帖子中描述的请求拦截器:如何在 Android 中发送 HTTP 基本身份验证标头?
我得到了完全相同的请求,没有身份验证标头。
我究竟做错了什么?
提前致谢。