我正在学习项目的SOAP,现在我已经了解了它的基础知识。不敢相信我以前从未尝试过这个。这很棒。但无论如何,对我的问题。
我已成功将我的请求的响应打印到Web浏览器,但我似乎无法将此响应转换为STD对象。
我一直在关注一个教程,并将其改编为不同的WDSL文件,以完全理解我在做什么。
这是我的PHP文件。
<?
//////////////////////////////////////
//
// ABOUT: This file will send a request to the WSDL file and return a result in the browser window
// AUTHOR: Brad Bird
// DATE: 07/02/2013
//
//////////////////////////////////////
// Setup the SOAP Client options
$wsdl = "http://www.mobilefish.com/services/web_service/countries.php?wsdl";
$options = array(
"trace" => 1,
"exception" => 0
);
// Creates new instance of the SOAP Client
$client = new SoapClient($wsdl, $options);
// Return a set of information using one function
$countryCode = "af";
$values = $client->countryInfoByIana($countryCode);
// Prints the details of the request and response to the browser
print "<h2>SOAP Details</h2>";
print "<pre>";
print "<h3>Request</h3> " . htmlspecialchars($client->__getLastRequest()) . "<br />";
print "<h3>Response</h3> " . htmlspecialchars($client->__getLastResponse());
print "</pre>";
// Prints the request in XML format
$xml = $values->countryInfoByIanaResponse;
print "<h2>stdClass Object</h2>";
print "<pre>";
print_r($xml);
print "</pre>";
我试图从这里得到请求的这个WSDL文件就在这里。 http://www.mobilefish.com/services/web_service/countries.php?wsdl
由于某种原因,STD对象部分什么都没有显示。有什么想法吗?
答案 0 :(得分:1)
嗯,$ xml不是stdClass的对象,而是null
。 $values
但是。 $values->countryInfoByIanaResponse
不存在。所有你有$值的是
: object(stdClass) =
ianacode: string = "af"
countryname: string = "Afghanistan"
latitude: double = 33.93911
longitude: double = 67.709953
不确定你到底想要做什么 - 也许在$ client上调用一个方法而不是你的结果? 另外,检查一下error_reporting上的PHP手册,你会偶然发现这个注意事项:未定义的属性:print_r行中的stdClass :: $ countryInfoByIanaResponse。