2

我必须扩展一个已建立的 Web 应用程序,它使用SOAP::WSDL与外部 SOAP 服务器进行通信。要使用新的 SOAP 方法,我必须扩展应用程序以通过 Web 应用程序中的用户会话处理 cookie。

我喜欢使用HTTP::CookieJar::LWP作为LWP::UserAgent的 cookie jar,但我没有找到关于如何用我自己的 SOAP::WSDL 替换非(持久)cookie-aware LWP 的任何提示一种从 Web 应用程序会话加载/存储 SOAP cookie 的方法。如何从 SOAP::WSDL 替换 LWP 句柄?

4

1 回答 1

2

我认为您不需要更改完整的 LWP。我什至不认为你可以,因为 SOAP::WSDL 的客户端是SOAP::Transport::HTTP::Client附带的SOAP::Lite。这又是LWP::UserAgent的子类并继承了它的方法,但它也添加了更多你需要的东西。

因此,您需要做的是将客户端的 cookie jar 设置为您想要的那个。客户端的接口仍然是 LWP::UserAgent 的接口,所以你的 HTTP::CookieJar::LWP 应该没问题。

$interface->get_transport()您可以使用该方法到达客户端。一旦你有了它,你就可以使用 LWP::UserAgent 的$ua->cookie_jar( $cookie_jar_obj )方法。

$interface->get_transport->cookie_jar(HTTP::CookieJar::LWP->new);

我相信这就是你需要做的。

于 2013-04-10T15:09:03.277 回答