[英]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.