java Web Service Client, 添加 http headers
2022-09-02 00:21:54
在 wsdl 上使用 wsimport 创建了一个 java Web 服务客户端之后,我需要为 http 请求中嵌入的每个 soap 消息设置授权标头。生成了javax.xml.ws.Service的子类后,我如何为每个传出请求附加http标头???
在 wsdl 上使用 wsimport 创建了一个 java Web 服务客户端之后,我需要为 http 请求中嵌入的每个 soap 消息设置授权标头。生成了javax.xml.ws.Service的子类后,我如何为每个传出请求附加http标头???
这是基于Femi的答案的代码。
弄清楚可能有点棘手。效果很好!
Service jaxwsService = Service.create(wsdlURL, serviceName);
Dispatch<SOAPMessage> disp = jaxwsService.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE);
//Add HTTP request Headers
Map<String, List<String>> requestHeaders = new HashMap<>();
requestHeaders.put("Auth-User", Arrays.asList("BILL_GATES"));
disp.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS, requestHeaders);
您可以将带有自定义标头的映射传递给 BindingProvider(我相信您可以设置 MessageContext.HTTP_REQUEST_HEADERS 属性)。尝试创建授权标头并将其传入。