java - 在 Netbeans 中使用 SOAP Web 服务客户端获取自定义 HTTP header (Cookie)

标签 java web-services cookies soap netbeans

我正在 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/

相关文章:

android - 数据库和网络服务模型

cookies - CORS 不适用于 IE10 中的 cookie

java - 直方图比较

java - 使用套接字将 int 从 Java 发送到 C

Java 构建用于排序的特定自定义比较器

java - Web 服务中的多线程

ios - 解析两个 JSON 对象

java - QuickSort 三路分区+混合实现

javascript - 在 Facebook 上查看 XS Cookie

java - 如何强制 Java 的 HttpClient 接受无效的 cookie?