java调用第三方webservice(需要登录验证)

最近研究了java调用第三方webservice的几种方法,方式很多,主要卡在登录验证上。


webservice是有iis中的.net程序提供的。在iis中设置了登录验证,浏览器输入http://192.168.100.108/InspectService/InspectService.asmx

弹出登录窗口


输入iis中设置的用户名密码,即可进入

了解到java调用webservice的几种方式,我选择了axis2,使用wsdl2java生成客户端代码,然后直接调用,很方便

 InspectServiceStub.TestConnection t=new InspectServiceStub.TestConnection();
 System.out.println(stub.testConnection(t).getTestConnectionResult());
 调用还不行,还需要登录,在这一步的时候,查阅了很多资料,无非是使用这种方式

ServiceClient sc = stub._getServiceClient();
		 Options opts = sc.getOptions();
		 opts.setTo(new
		 EndpointReference("http://192.168.100.108/InspectService/InspectService.asmx"));
		 HttpTransportProperties.Authenticator basicAuth = new
		 HttpTransportProperties.Authenticator();
//		 AuthPolicy.registerAuthScheme(AuthPolicy.NTLM, BackportedNTLMScheme.class);
		 basicAuth.setUsername("username");
		 basicAuth.setPassword("password");
		 List authPrefs = new ArrayList(1);
		 authPrefs.add(AuthPolicy.NTLM);
		 basicAuth.setAuthSchemes(authPrefs);
		 opts.setProperty(HTTPConstants.AUTHENTICATE, basicAuth);
 //调用方法TestConnection
             InspectServiceStub.TestConnection t=new InspectServiceStub.TestConnection();
             System.out.println(stub.testConnection(t).getTestConnectionResult());
         

大部分人也是这样写的。但是在自己的测试中总是通不过,放弃

关于调用不成功的,看了一些人的说法:http://codego.net/295434/



使用cxf

通过wsdl2java生成客户端代码,下面是调用

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
		factory.setServiceClass(InspectService.class); 
		factory.setAddress("http://192.168.100.108/InspectService/InspectService.asmx");  
		  
		factory.setUsername("username");
		factory.setPassword("password");
		  
		InspectService s = (InspectService) factory.create(); 
		System.out.println("connection result:"+s.testConnection());
测试通过


参考:http://blog.sina.com.cn/s/blog_6556038f0101dkem.html

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值