0

我正在尝试访问需要调用 2 种方法的 Web 服务,一种用于登录,另一种用于实际结果。

在 SoapUI 中进行测试后,我可以在检查“维护 HTTP 会话”后得到结果。所以我提出了一个登录请求,然后是结果请求,它工作了。

如何在 PHP 中处理“SOAP 会话”?

4

1 回答 1

1

查看 php 的 SoapClient 类看起来并没有自动处理会话持久性的代码。

相反,您可以使用手动从 SoapClient 获取 cookie

$SoapClient->_cookies

登录后,将其存储在某个位置(文件、数据库、内存缓存等),并在使用__setCookie对后续(单独)调用进行任何查询之前设置该 cookie

您可以尝试扩展 SoapClient 类并使用 cookie 持久性代码“装饰”它,因为在某些时候 cookie 可能会过期并且您的方法调用将失败。在这种情况下,您可以做一些事情来重新进行身份验证,并使用新的更新您的 cookie 数据。

于 2012-12-05T21:17:27.930 回答