【发布时间】:2014-05-31 13:40:35
【问题描述】:
我调用身份验证请求以接收会话 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.
会话 id 是如何传递给下一个 http 请求的,因为这没有描述?
我假设我需要将会话 ID 作为后续请求的一部分嵌入到 XML 标记中,但这应该在 API 中详细说明,或者是否有我可以使用的标准机制?
【问题讨论】:
-
AFAIK SOAP 在设计上是无状态的。尝试使其有状态必须是一种特定的机制,应在 API 中详细说明
-
嗨,我可能没有正确理解这个问题,但对我来说,您似乎需要将会话 ID 提取到属性(TestCase、TestSuite 或项目)中,然后使用定义的属性。顺便说一句,这里有一个例子。
-
由于您使用的是
soapui,您可以编写一个groovy脚本将其插入到另一个请求中 -
抱歉,忘记将提到的链接添加到示例soapui.org/Functional-Testing/…
-
这个问题用soapui标记,还有java和spring;你想在soapui或Java代码中获得这个设置吗?如果在 Java 代码中,您使用的是什么客户端堆栈(jax-ws、cxf 等)?
标签: java spring session soap soapui