使用Netbeans中的SOAP web服务客户端获取自定义HTTP头(Cookie)



我正在使用Netbeans中的标准web服务客户端。SOAP服务器包含一个Cookie作为HTTP报头。我如何从客户端代码访问这个头/cookie ?

我假设一种方法涉及到使用MessageHandler。我已经添加了一个Web服务消息处理程序,我已经尝试修改public boolean handleMessage(SOAPMessageContext messageContext)方法,但我不知道如何抓取HTTP头,而不是SOAPMessage。

我知道如何在web服务客户端添加自定义报头,例如身份验证,但我只是不知道如何在客户端获得自定义报头:

Authenticator.setDefault(new Authenticator() {
        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("username", "Password".toCharArray());
        }

我使用的解决方案是使用getResponseContext()获得自定义HTTP头:

 Map<String, Object> responseHeaders;
 responseHeaders = sourceDispatch.getResponseContext();
 Object cookie = responseHeaders.get("javax.xml.ws.http.response.headers");

这是很好的和熟悉的,因为我已经使用getRequestContext设置自定义HTTP头。

尝试使用:

SOAPConnection connection = IpspSOAPConnectionFactory.newInstance().createConnection();
SOAPMessage responseSoap = connection.call(requestSoap, webServiceUrl);
String[] someHeader = responseSoap.getMimeHeaders().getHeader(someHeaderName);

相关内容

  • 没有找到相关文章

最新更新