你首先必须实例化SoapClient
class,就像你做的那样:
$url = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
$client = new SoapClient($url);
那么,你必须调用你想使用的方法-- 方法名称可以在 WSDL 中找到。
例如,我们可以调用一个名为CelsiusToFahrenheit
,在此 WebService 中:
$result = $client->CelsiusToFahrenheit( /* PARAMETERS HERE */ );
现在的问题是要知道应该传递哪些参数;如何...
如果您查看 WSDL,您将看到这部分:
<s:element name="CelsiusToFahrenheit">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Celsius" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
这表明应该向此方法传递一个数组,其中包含 1 项,其中包含“Celsius
" 作为键,以及要转换为值的值。
这意味着您必须使用这部分 PHP 代码:
$result = $client->CelsiusToFahrenheit(array('Celsius' => '10'));
执行此调用并转储结果:
var_dump($result);
得到这样的输出:
object(stdClass)#2 (1) {
["CelsiusToFahrenheitResult"]=>
string(2) "50"
}
这意味着你必须使用这个:
echo $result->CelsiusToFahrenheitResult . "\n";
为了得到结果值 :
50
注意:当然,这个结果的结构也可以在 WSDL 文件中找到——请参阅CelsiusToFahrenheitResponse
部分。