java soap服务端注册_java – 使用NTLM身份验证使用soap服务
我试图通过创建NTLM引擎(遵循
http://hc.apache.org/httpcomponents-client-4.3.x/ntlm.html上的说明)来使用NTLM身份验证来使用SOAP服务,实现了AuthSchemeFactory并最终将AuthSchemeFactory注册到我的HTTP客户端.当我使用我的HTTP客户端点击服务时,我得到一个响应:“状态代码 – 415,消息 – 服务器无法为请求提供服务,因为媒体类型不受支持.”
任何人都可以告诉我如何解决这个不受支持的媒体问题,以便在Java平台上使用受NTLM保护的SOAP Web服务.使用JCIFS是一个正确的选项来约束NTLM受保护的服务,还是有更好的方法.提前致谢.
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getAuthSchemes().register(AuthSchemes.NTLM,
new JCIFSNTLMSchemeFactory());
CredentialsProvider credsProvider = new BasicCredentialsProvider();
NTCredentials ntcred = new NTCredentials("USERNAME", "PASSWORD",
"HOST", "DOMAIN");
credsProvider.setCredentials(new AuthScope("HOST", 443,
AuthScope.ANY_REALM, "NTLM"), ntcred);
httpclient.setCredentialsProvider(credsProvider);
httpclient.getParams().setParameter(
CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8");
Writer writer = new StringWriter();
writer.write("MY SOAP REQUEST BODY");
HttpPost httppost = new HttpPost(
"https:///XiPay30WS.asmx");
httppost.setEntity(new StringEntity(writer.toString()));
httppost.setHeader("Content-Type",
"application/x-www-form-urlencoded");
HttpResponse httpresponse = httpclient.execute(
new HttpHost("HOST", 443, "https"),
httppost, new BasicHttpContext());
String statusCode = httpresponse.getStatusCode();
更多推荐
所有评论(0)