由于我无法控制的原因,我被迫使用NuSoap
代替SOAP
向网络服务提出请求。
经过一些搜索,我在SOAP's
中找到了__getFunctions()
NuSoap
等效字词。我现在所处理的部分是弄清楚网络服务功能所期望的参数格式。
require_once(APPPATH.'libraries/nusoap.php');
$baseurl = 'http://www.webservicex.net/geoipservice.asmx?WSDL';
$client = new nusoap_client($baseurl, true);
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
die();
}
$proxy = $client->getProxyClassCode();
print_r($proxy);
上面给出了
的输出class nusoap_proxy_1027585735 extends nusoap_client
{
// http://www.webservicex.net/:GetGeoIP^
$parameters function GetGeoIP($parameters)
{
$params = array('parameters' => $parameters);
return $this->call('GetGeoIP', $params, 'http://testuri.com', 'http://www.webservicex.net/GetGeoIP');
}
// http://www.webservicex.net/:GetGeoIPContext^
$parameters function GetGeoIPContext($parameters)
{
$params = array('parameters' => $parameters);
return $this->call('GetGeoIPContext', $params, 'http://testuri.com', 'http://www.webservicex.net/GetGeoIPContext');
}
}
现在我知道了函数名称(GetGeoIP和GetGeoIPContext),我很难找到传递给这些函数的参数。
我猜$params = array('parameters' => $parameters);
是我应该感兴趣的部分,但这并不能给出完整的图片。
简而言之,SOAP's
中的__getTypes()
NuSoap
是否相等?
答案 0 :(得分:2)
您可以使用SoapUI获取请求的示例。
如果使用url endPoint(WSDL)创建新项目,则可以获取所有soapCalls。使用它更容易理解WSDL中定义的类型。
请点击此链接http://www.soapui.org/SOAP-and-WSDL/working-with-wsdls.html
$ parameters是请求
中每个参数的数组(键 - >值)$ parameters = array(&#39; IPAddress&#39; =&gt;&#39; xxx.xxx.xxx.xxx&#39;)
答案 1 :(得分:0)
$opdata = $proxy->getOperationData('GetGeoIP');
方法getOperationData继承自nusoap_client。请参阅http://www.contao-docs.org/docs/nusoap/html/classnusoap__client.html。