
传统的SOAP形式WebService支持对客户端进行认证授权,本篇经验就分享一下客户端如何调用需要认证授权的WebService。
直接调用需要授权访问的WebServcie时,会报401错误
图1示:根据WebService的wsdl文件生成客户端类,开发一段简单的测试代码
图2示:执行代码时,直接报错,错误信息显示是:“Server returned HTTP response code: 401 for URL”,其本质原因就是在调用服务接口前,没有进行账号认证。
开发账号认证类
图示,自定义一个类,继承 JDK 的 Authenticator ,并覆写 getPasswordAuthentication 方法,在方法中,构建类 PasswordAuthentication 对象,并传递用户名和密码。
调用服务前,通过自定义账号认证类配置认证信息
图示,在构建相关的WebService客户端类对象前,先调用 Authenticator 类的 setDefault 方法配置认证信息。
再次运行服务测试类
图示,这次服务接口调用顺利完成,没有报错。
