我调用一个身份验证请求,以便接收会话ID:
2342422342.dc8bizxsfapi03
2342342342342353452323
在我正在使用的Soap API的文档中指出:
A successful login will return a
session ID as an HTTP Cookie. This cookie must be passed back to all subsequent HTTP
Requests that invoke API operations in order to authenticate.
会话ID如何传递给下一个http reqeust,因为没有描述?
我假设我需要将会话ID作为后续请求的一部分嵌入XML标记中,但这应该在API中详细说明,还是我可以使用标准机制?
解决方法:
您引用的API文档声明该服务将在响应上设置cookie,该响应需要在任何后续请求中设置. Cookie是通过HTTP标头发送的,而不是请求/响应的主体,通常用于建立和维护会话. Web服务框架使用的底层HTTP客户端库已经准备好为您处理此问题,但由于SOAP Web服务设计为无状态,因此您通常必须询问框架是否要维护会话.当您启用此功能时,它只是意味着框架将任何cookie发送回服务器发送给它的服务器,这正是您的SOAP API文档要求您执行的操作.
要在jax-ws中启用此功能,请在RequestContext上将BindingProvider.SESSION_MAINTAIN_PROPERTY设置为true. This article给出了一个示例和更多细节.
标签:java,soap,spring,session,soapui
来源: https://codeday.me/bug/20190528/1174217.html