Chr*_*itz 1 php soap web-services
我正在阅读关于webservices和SOAP的教程.在了解这些内容时,我创建了一个php文件,以便对w3schools提供的WSDL进行操作,该文件将温度转换为摄氏温度和华氏温度.
我编写了以下成功触发的PHP代码:
$wsdl = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
$soapClient = new SoapClient($wsdl);
// print_r ($soapClient->__getFunctions());
// print_r ($soapClient->__getTypes());
$parameters = array("Celsius" => "0");
$result = $soapClient->__soapCall("CelsiusToFahrenheit", array($parameters) );
echo "key: " . key($result) . "<br />" ;
echo "value: " . current($result) . "<br />" ;
Run Code Online (Sandbox Code Playgroud)
浏览器成功返回以下内容:
key: CelsiusToFahrenheitResult
value: 32
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用SoapClient方法__getLastRequest()并__getLastRequestHeaders()查看发送的标头,看看它们与我读过的内容的比较以及两个方法调用返回null
echo "Last call headers: <br />";
echo $soapClient->__getLastRequestHeaders();
echo "<br />" ;
echo "Last call headers: <br />";
echo $soapClient->__getLastRequest();
Run Code Online (Sandbox Code Playgroud)
我查看了_getLastRequestHeaders()的php手册中的注释和示例,看起来所有内容都设置正确.我不知道我做错了什么:/
任何帮助,将不胜感激!
如果trace在构造函数的options参数中未设置为true SoapClient,则不会存储这些.所以简单地说,这对你有用:
$soapClient = new SoapClient($wsdl, array('trace' => true));
Run Code Online (Sandbox Code Playgroud)
...您链接到的手册页明确指出:
注意:
仅当创建SoapClient对象并将trace选项设置为TRUE时,此函数才有效.
| 归档时间: |
|
| 查看次数: |
2266 次 |
| 最近记录: |