blu*_*sky 5 java session spring soap soapui
我调用身份验证请求以接收会话 ID:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<loginResponse xmlns="urn:company" xmlns:ns2="urn:company">
<result>
<sessionId>2342422342.dc8bizxsfapi03</sessionId>
<msUntilPwdExpiration>2342342342342353452323</msUntilPwdExpiration>
</result>
</loginResponse>
</S:Body>
</S:Envelope>
Run Code Online (Sandbox Code Playgroud)
在我使用的 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.
Run Code Online (Sandbox Code Playgroud)
会话 id 如何传递到下一个 http 请求,因为这没有描述?
我假设我需要将会话 ID 嵌入 XML 标记中作为后续请求的一部分,但这应该在 API 中详细说明,或者是否有我可以使用的标准机制?
您引用的 API 文档指出,该服务将在响应上设置一个 cookie,需要在任何后续请求中设置该 cookie。Cookie 通过 HTTP 标头(而不是请求/响应的正文)发送,通常用于建立和维护会话。Web 服务框架使用的底层 HTTP 客户端库可以很好地为您处理此问题,但由于 SOAP Web 服务被设计为无状态,因此您通常必须询问框架是否希望它维护会话。当您启用此功能时,它仅意味着框架会将服务器发送给它的所有 cookie 发送回服务器,这正是 SOAP API 文档要求您执行的操作。
要在 jax-ws 中启用此功能,请在 RequestContext 上将 BindingProvider.SESSION_MAINTAIN_PROPERTY 设置为 true。 本文提供了一个示例和更多详细信息。
归档时间: |
|
查看次数: |
16383 次 |
最近记录: |