soapclient请求不完整

时间:2013-04-30 00:49:13

标签: php soap

我正在使用php SOAPClient从外部服务器调用数据,并使用soapUI测试并验证了该服务。我的请求似乎正常工作,直到它到达第四个参数,这是一个字符串(前三个是数字)。我的代码和请求如下:

$wdsl = "http://ofmpub.epa.gov/WATERSWebServices/SpatialServices?WSDL";
$client = new SoapClient($wdsl, array(
                                "trace"=>1,
                                "exceptions"=>0));
$lat =  46.852783;
$long = -114.004517;
$radius = 1;
$program = '303D';

$values = $client->getEntitiesByLatLong($lat,$long,$radius,$program);

结果请求:

<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ofmpub.epa.gov/WATERSWebServices/SpatialServices.wsdl">
  <SOAP-ENV:Body>
    <ns1:getEntitiesByLatLong>
      <latitude>46.852783</latitude>
      <longitude>-114.004517</longitude>
      <searchRadiusMiles>1</searchRadiusMiles>
      <programsList />
    </ns1:getEntitiesByLatLong>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我相信该服务在这里需要一个字符串。我的代码是否有问题?

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,你需要将一个数组或对象传递给soap客户端方法调用。 即。

$data = array('latitude' => 46.852783, 'longitude' => -114.004517, ... );
$values = $client->getEntitiesByLatLong($data);

来自数组的键或来自对象的属性被映射到xml节点&amp;相应的价值观。

在soap客户端对象上,您可以获取请求xml&amp;实际上看到通过网络传输的内容(使用getLastRequest())php soap client