【问题标题】:How to replace LWP handle in SOAP::WSDL?如何替换 SOAP::WSDL 中的 LWP 句柄?
【发布时间】:2013-04-10 10:59:51
【问题描述】:

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

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

【问题讨论】:

  • 您可以使用$soap->get_client()->set_proxy($endpointurl,{cookiejar => $cookiejar}) 设置LWP 句柄选项。

标签: perl soap wsdl lwp


【解决方案1】:

我认为您不需要更改完整的 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);

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

【讨论】:

    猜你喜欢
    • 2016-02-01
    • 2014-12-15
    • 1970-01-01
    • 2011-09-21
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多