理解多部分消息的 PHP SOAP 客户端?

标签 php web-services soap

有这样的野兽吗?简单 SOAP client PHP 附带的不理解多部分消息。提前致谢。

最佳答案

原生 PHP SoapClient类不支持多部分消息(并且在所有 WS-* 事务中受到严格限制)而且我也认为 PHP 编写的库都不是 NuSOAP也不Zend_Soap可以处理这种 SOAP 消息。

我可以想到两种解决方案:

  • 扩展 SoapClient 类并覆盖 SoapClient::__doRequest() 方法以获取实际的响应字符串,然后您可以随心所欲地解析该字符串.

    class MySoapClient extends SoapClient
    {
        public function __doRequest($request, $location, $action, $version, $one_way = 0)
        {
            $response = parent::__doRequest($request, $location, $action, $version, $one_way);
            // parse $response, extract the multipart messages and so on
        }
    }
    

    虽然这可能有些棘手 - 但值得一试。

  • 使用更复杂的 PHP SOAP 客户端库。我想到的第一个也是唯一一个是WSO2 WSF/PHP它具有 SOAP MTOM、WS-Addressing、WS-Security、WS-SecurityPolicy、WS-Secure Conversation 和 WS-ReliableMessaging,但必须安装 native PHP 扩展。

关于理解多部分消息的 PHP SOAP 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122292/

相关文章:

php - 在 Wordpress(或 .htaccess)中创建 URL 别名

php - 如何在 Twig 文件中设置变量、递增和回显?

xml - 用于读取 xml 文件并使用文件内容更新下一步请求的 Groovy 脚本

c# - 从 C# 调用 Java WS

php - 将客户的提示输入添加到 WooCommerce 结帐页面

php - 使用字符串的唯一 int(11) mysql 值

java - 如何将Scala应用程序转变为单实例持久HTTP服务?

asp.net - 从非 Web 客户端调用 ASP.NET 2.0 身份验证服务

javascript - 如何通过 XMLHttpRequest() post 请求传递 base64encode 字符串

java - 是否可以在不使用 WSDD 的情况下使用 Axis 部署 SOAP 服务器?