繁体   English   中英

对.NET SOAP Server的PHP-Zend Soap请求

[英]PHP - Zend Soap Request to .NET SOAP Server

我想要一点帮助。

我正在尝试使用Zend从PHP向.NET SOAP服务器发送请求。

我有WSDL文件,但它不包含任何标题信息。 尽管我尝试添加一个自定义标头,但这似乎不起作用,最糟糕的是WSDL文件本身似乎并不“正确” .....

这里是链接: http : //www.speedex.gr/getvoutrans/getvoutrans.asmx可以通过添加?WSDL在同一链接中找到WSDL。

我的要求是:GetVouTrans

提前感谢!

http://www.speedex.gr/getvoutrans/getvoutrans.asmx?op=GetVouTrans网址显示了预期的请求。

如果您将覆盖SoapClient :: __ doRequest函数,则可以检查要发送的内容。
(不要忘了调用parent :: __ doRequest())

您甚至可以更改xml以进行.net特定更改。

糟糕的是,SOAP在不同语言之间并非总是开箱即用。
我在使用php 5.2.0(debian)和Java肥皂服务器时遇到了问题,当我升级到php 5.2.8版本时,问题就消失了。

在__doRequest联机帮助页上的注释表明:

class MSSoapClient extends SoapClient {

  function __doRequest($request, $location, $action, $version) {
    $namespace = "http://tempuri.com";

    $request = preg_replace('/<ns1:(\w+)/', '<$1 xmlns="'.$namespace.'"', $request, 1);
    $request = preg_replace('/<ns1:(\w+)/', '<$1', $request);
    $request = str_replace(array('/ns1:', 'xmlns:ns1="'.$namespace.'"'), array('/', ''), $request);

    // parent call
    return parent::__doRequest($request, $location, $action, $version);
  }
}

$client = new MSSoapClient(...);

但是此评论来自2007年,因此您的里程可能会有所不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM