1

我正在尝试通过使用 NTLM 代理身份验证来使用 Httppost 操作。我用过 JCIFSEngine。但我仍然收到错误消息。

这是我的代码:

BasicHttpParams params = new BasicHttpParams();
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);
HttpConnectionParams.setConnectionTimeout(params, connectionTimeout);
HttpConnectionParams.setSoTimeout(params, connectionTimeout);
httpclient = new DefaultHttpClient(cm, params);

httpclient.getAuthSchemes().register(AuthPolicy.NTLM, new NTLMSchemeFactory());
    httpclient.getCredentialsProvider().setCredentials(new AuthScope("proxyServerIP", 80, "http", "DOMAIN"),new NTCredentials("userNAme", "pass", null, "DOMAIN")); 

我收到此错误:

<HEAD><TITLE>Proxy Authorization Required</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black"><H1>Proxy Authorization Required</H1><HR>
<FONT FACE="Helvetica,Arial"><B>
Description: Authorization is required for access to this proxy<BR><BR>
</B>Error Code: <BR>(NTLM) NA c<BR><BR>
User Agent: <BR><BR><BR>
Error Detail: <BR><PRE>[2013/06/14 17:30:44.539735,  1] libsmb/ntlmssp.c:342(ntlmssp_update)
  got NTLMSSP command 3, expected 1
</PRE><BR><BR></B></FONT>
<HR>
<!-- default "Proxy Authorization Required" response (407) -->
</BODY>

谢谢你的帮助。

4

1 回答 1

0

如果您想尝试 Apache Software Foundation 的问题解决方案:

http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#ntlm

4.9. NTLM 身份验证

从 4.1 版开始,HttpClient 提供对 NTLMv1、NTLMv2 和 NTLM2 会话身份验证的开箱即用的完全支持。人们仍然可以继续使用外部 NTLM 引擎,例如由 Samba 项目开发的 JCIFS 库,作为其 Windows 互操作性程序套件的一部分。

于 2013-09-11T09:16:15.010 回答