如何将 Azure 订阅密钥 header 添加到 JAX-WS SOAP 消息
How to add Azure subscription key header to JAX-WS SOAP message
我正在尝试通过 Azure 发送 SOAP 消息,我需要将订阅密钥添加到我的 JAX-WS 消息中。
NewSubscription_Service test = new NewSubscription_Service();
NewSubscription newSubscription = test.getNewSubscription();
WSBindingProvider binding = (WSBindingProvider) newSubscription;
binding.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, soapEndpointUrlAzure);
binding.setOutboundHeaders(
Headers.create(new QName("Ocp-Apim-Subscription-Key"),"xxx")
);
当我尝试发送此消息时,它会给我一个 401 并给出以下解释:
由于缺少订阅密钥,访问被拒绝。确保在向 API.
发出请求时包含订阅密钥
我应该以其他方式添加 header 吗?我不太习惯 SOAP 消息,所以欢迎任何帮助。
我发现您不应该为此使用 outboundHeaders。
下面的代码是您应该如何添加 headers:
Map<String, List<String>> requestHeaders = new HashMap<>();
requestHeaders.put("Ocp-Apim-Subscription-Key", Arrays.asList("xxx"));
binding.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS, requestHeaders);
我正在尝试通过 Azure 发送 SOAP 消息,我需要将订阅密钥添加到我的 JAX-WS 消息中。
NewSubscription_Service test = new NewSubscription_Service();
NewSubscription newSubscription = test.getNewSubscription();
WSBindingProvider binding = (WSBindingProvider) newSubscription;
binding.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, soapEndpointUrlAzure);
binding.setOutboundHeaders(
Headers.create(new QName("Ocp-Apim-Subscription-Key"),"xxx")
);
当我尝试发送此消息时,它会给我一个 401 并给出以下解释: 由于缺少订阅密钥,访问被拒绝。确保在向 API.
发出请求时包含订阅密钥我应该以其他方式添加 header 吗?我不太习惯 SOAP 消息,所以欢迎任何帮助。
我发现您不应该为此使用 outboundHeaders。 下面的代码是您应该如何添加 headers:
Map<String, List<String>> requestHeaders = new HashMap<>();
requestHeaders.put("Ocp-Apim-Subscription-Key", Arrays.asList("xxx"));
binding.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS, requestHeaders);