如何在SoapClient中维护会话 - PHP

时间:2012-12-05 20:57:49

标签: php soap soap-client

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

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

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

1 个答案:

答案 0 :(得分:1)

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

相反,您可以使用

手动从SoapClient获取Cookie
  

$ SoapClient-> _cookies

登录后,将其存储在某个地方(文件,数据库,内存缓存等),并在使用__setCookie

对后续(单独)调用进行任何查询之前设置该cookie

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