使用 Axis 2 将自定义 header 发送到 SOAP Web 服务
sending custom header to SOAP web service with Axis 2
我必须通过 header 发送令牌。这是我正在尝试的代码。
ServiceClient _serviceClient = new ServiceClient();
SOAPHeaderBlock header = new SOAP11HeaderBlockImpl();
header.addAttribute("Content-Type", "text/xml; charset=utf-8", null);
header.addAttribute("LocationToken", "vdsadfafdasfsdas==", null);
header.addAttribute("AccessToken", "zxfadfasfasdfasdfsadf", null);
header.addAttribute("Content-Length", String.valueOf(input), null);
header.addAttribute("SOAPAction","http://example.com/CalculateOrder",null);
_serviceClient.addHeader(header);
owesbservice._setServiceClient(_serviceClient);
我在响应中收到 NullpoinException。
CalculateOrderResponseDocument responseDoc = null;
responseDoc = owesbservice.calculateOrder(calculateOrder8);
如何解决这个问题?除此之外,我需要指定 POST/GET
这是发送自定义 header 的代码片段。
Map<String, String> property = new HashMap<>();
property.put("LocationToken", "vbdffdssgsdf==");
property.put("AccessToken", "fgfsdfsdfddfdfdf==");
options.setProperty( org.apache.axis2.transport.http.HTTPConstants.HTTP_HEADERS , property);
在此之前,我一直在向客户header发送其他信息,例如Content-type。但是如果你想发送它们,你可以使用API方法作为例子,
options.setProperty(org.apache.axis2.Constants.Configuration.CHARACTER_SET_ENCODING ,"UTF-8");
options.setProperty(org.apache.axis2.transport.http.HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");
我必须通过 header 发送令牌。这是我正在尝试的代码。
ServiceClient _serviceClient = new ServiceClient();
SOAPHeaderBlock header = new SOAP11HeaderBlockImpl();
header.addAttribute("Content-Type", "text/xml; charset=utf-8", null);
header.addAttribute("LocationToken", "vdsadfafdasfsdas==", null);
header.addAttribute("AccessToken", "zxfadfasfasdfasdfsadf", null);
header.addAttribute("Content-Length", String.valueOf(input), null);
header.addAttribute("SOAPAction","http://example.com/CalculateOrder",null);
_serviceClient.addHeader(header);
owesbservice._setServiceClient(_serviceClient);
我在响应中收到 NullpoinException。
CalculateOrderResponseDocument responseDoc = null;
responseDoc = owesbservice.calculateOrder(calculateOrder8);
如何解决这个问题?除此之外,我需要指定 POST/GET
这是发送自定义 header 的代码片段。
Map<String, String> property = new HashMap<>();
property.put("LocationToken", "vbdffdssgsdf==");
property.put("AccessToken", "fgfsdfsdfddfdfdf==");
options.setProperty( org.apache.axis2.transport.http.HTTPConstants.HTTP_HEADERS , property);
在此之前,我一直在向客户header发送其他信息,例如Content-type。但是如果你想发送它们,你可以使用API方法作为例子,
options.setProperty(org.apache.axis2.Constants.Configuration.CHARACTER_SET_ENCODING ,"UTF-8");
options.setProperty(org.apache.axis2.transport.http.HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");