gpt4 book ai didi

java - 如何将 session ID 作为 Soap 请求的一部分传递?

转载 作者:搜寻专家 更新时间:2023-11-01 02:08:51 27 4
gpt4 key购买 nike

我调用身份验证请求以接收 session 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>

在我正在使用的 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.

session ID 如何传递到下一个 http 请求,因为这没有描述?

我假设我需要将 session ID 嵌入 XML 标记中作为后续请求的一部分,但这应该在 API 中详细说明,或者是否有我可以使用的标准机制?

最佳答案

您引用的 API 文档指出该服务将在响应上设置一个 cookie,需要在任何后续请求上设置该 cookie。 Cookies 通过 HTTP header 发送,而不是请求/响应的主体,通常用于建立和维护 session 。 Web 服务框架使用的底层 HTTP 客户端库可以很好地为您处理这个问题,但由于 SOAP Web 服务被设计为无状态的,如果您希望它维护 session ,您通常必须询问框架。当您启用此功能时,它仅意味着框架会将服务器发送给它的所有 cookie 发送回服务器,这正是您的 SOAP API 文档要求您做的。

要在 jax-ws 中启用此功能,请在 RequestContext 上将 BindingProvider.SESSION_MAINTAIN_PROPERTY 设置为 true。 This article给出了一个例子和更多细节。

关于java - 如何将 session ID 作为 Soap 请求的一部分传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23113574/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com