Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&;SoapClient:SOAP请求中缺少参数_Php_Web Services_Soap Client - Fatal编程技术网

PHP&;SoapClient:SOAP请求中缺少参数

PHP&;SoapClient:SOAP请求中缺少参数,php,web-services,soap-client,Php,Web Services,Soap Client,我试图解决一个问题,即SoapClient似乎没有将参数插入SOAP请求中 该简单测试无法测试与网站运行在同一服务器上的web服务,即Windows8服务器上的PHP5.3.13和IIS 7.1。就在两天前,这种方法还有效,但现在失败了。除了更新之外,我不知道服务器安装有任何更改 function simpleTest(){ $client = new SoapClient("http://server-sql:78/PCIWCTest/Service1.svc?wsdl",

我试图解决一个问题,即SoapClient似乎没有将参数插入SOAP请求中

该简单测试无法测试与网站运行在同一服务器上的web服务,即Windows8服务器上的PHP5.3.13和IIS 7.1。就在两天前,这种方法还有效,但现在失败了。除了更新之外,我不知道服务器安装有任何更改

    function simpleTest(){

    $client = new SoapClient("http://server-sql:78/PCIWCTest/Service1.svc?wsdl", array( "trace" => 1 ));

    $result = $client->__soapCall("GetData",
    array('GetData'=> array('parameters'=> 'Hello')),
    array('soapaction' => 'http://server-sql:78/PCIWCTest/GetData'));

    $requXML = $client->__getLastRequest();
    $respXML = $client->__getLastResponse();

    debug($requXML);
    debug($respXML);
}
结果请求($requXML)是:


我假设两个字符之间应该有字符串“Hello”

<SOAP-ENV:Body><ns1:GetData/></SOAP-ENV:Body>    

标签,对吗

在故障排除过程中,我使用了许多不同的方法,例如soap调用,但结果相同。服务器已重新启动。我已经尝试了我能想到的一切,并且找到了可以尝试的方法


以前有人看到过或有想法吗?

在本例中,我发现我发送的参数与Web服务代码中的参数名称不完全相同。通过更改上述内容:

array('GetData'=> array('parameters'=> 'Hello')),
致:

调用正常,参数不再为空!我不知道;我不知道这种行为在这种情况下是否是唯一的,但以我有限的经验,我还没有见过这样一种情况,即它与另一端的参数命名有关系

无论如何,这个问题已经解决了。希望这对别人有帮助

直接在
客户机
对象上调用“GetData”方法会产生相同的问题结果吗?我假设您在这里使用
\uu
方法进行调试,对吗?是和是$client->(GetData,$params)生成相同的结果。我还尝试根据一些建议设置参数的类型,并将参数封装在另一个数组中,但没有效果。
array('GetData'=> array('parameters'=> 'Hello')),
array('GetData'=> array('value'=> 'Hello')),