我正在 Netbeans 中使用标准 Web 服务客户端。 SOAP 服务器包含 Cookie 作为 HTTP header 。如何从客户端代码访问此 header /cookie?
我假设一种方法涉及使用 MessageHandler。我添加了一个 Web 服务消息处理程序,并且尝试修改 public boolean handleMessage(SOAPMessageContext messageContext)
方法,但我不知道如何获取 HTTP header ,而不是 SOAPMessage。
我知道如何在 Web 服务客户端中添加自定义 header ,例如用于身份验证,但我只是不知道如何在客户端中获取自定义 header :
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username", "Password".toCharArray());
}
最佳答案
我使用的解决方案是使用 getResponseContext()
获取自定义 HTTP header :
Map<String, Object> responseHeaders;
responseHeaders = sourceDispatch.getResponseContext();
Object cookie = responseHeaders.get("javax.xml.ws.http.response.headers");
这很好而且很熟悉,因为我使用了 getRequestContext
来设置自定义 HTTP header 。
关于java - 在 Netbeans 中使用 SOAP Web 服务客户端获取自定义 HTTP header (Cookie),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344669/