如何通过httpclient访问基于windows域服务器摘要身份证认证服务器提供的url,实际测试中,发现如果url是一个正常的url格式,比如:http://localhost/docs/这样的url可以直接认证通过,但如果url中带了参数http://localhost/docs/?ack=do,这样的url,认证时始终返回401错误,不知道原因为何.
如下方式:
HttpClient client = new HttpClient();
client.getState().setCredentials(new AuthScope("localhost", 80, null), new UsernamePasswordCredentials("usrname", "password"));
List<String> authPrefs = new ArrayList<String>(3);
authPrefs.add(AuthPolicy.BASIC);
authPrefs.add(AuthPolicy.DIGEST);
authPrefs.add(AuthPolicy.NTLM);
client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs);
GetMethod httpMethod = new GetMethod("http://localhost/docs/");
int status = client.executeMethod(httpMethod);
这样只通过不带参数的url验证,但如果url上带上了参数,就不行了,或者先用不带参数的方式通过验证后,保持会话状态,然后再访问带参数的url,也是直接返回401错误,不知道原因为何?
------解决方案--------------------
参数这样设置:client.getParams().setParameter(“ack”,“do”)看看呢。