php - 如何从 wsdl 调用方法

标签 php soap wsdl

我试图从 wsdl 调用方法并收到错误。我是 SOAP 新手,正在尽我所能地学习。我知道休息更好,但我真的很想学 SOAP 。这是我到目前为止所拥有的:

ini_set('soap.wsdl_cache_enable', '0');
$client = new SoapClient('http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl');
$data = $client->__soapCall('GetQuote', array('GetQuote' => 'aapl'));
print $data;

我得到的错误是

Fatal error: Uncaught SoapFault exception: [soap:Server] Server was unable to process request. ---> Object reference not set to an instance of an object. in /Volumes/www/public/soap/s.php:5 Stack trace: #0 /Volumes/www/public/soap/s.php(5): SoapClient->__soapCall('GetQuote', Array) #1 {main} thrown in /Volumes/www/public/soap/s.php on line 5

谢谢

最佳答案

您可以在 http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl 中查看 GetQuote 请求所需的所有参数

您应该传递 StockSymbolLicenseKey。请求示例:

ini_set('soap.wsdl_cache_enable', '0');
$client = new SoapClient('http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl');
$data = $client->GetQuote(array('StockSymbol' => 'TEST_STR','LicenseKey' => 'TEST_STR'));
print_r($data);

将 TEST_STR 替换为您的数据

关于php - 如何从 wsdl 调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9562472/

相关文章:

php - 时间(); 2038年之后?

php - 在php中使用rsync复制远程文件

java - 从 Web 服务列表中隐藏 Restful 服务(Apache CXF)

java - XINS 以外的 Java 的 eXtreme Design-by-Contract?

php - 我可以更改 $_SERVER ['DOCUMENT_ROOT' ] 的值吗?

.net - 就 Web 服务而言,何时使用 SOAP 而不是 REST?

ruby - 从 Savon SOAP 请求中删除命名空间

Python zeep - 绑定(bind)名称以点 (.) 开头时标记名称无效

ruby - 带有 WSDL 的 ruby​​ 中的 SOAP 服务器

php - HTML a 标签导致空格