我正在尝试创建一个Web服务,但在此之前,我试图找到一个我在互联网上找到的简单示例,但我不断收到以下错误:
Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in C:\Documents and Settings\geoff\My Documents\Websites\jquery\index.php:20 Stack trace: #0 [internal function]: SoapClient->__call('getStockQuote', Array) #1 C:\Documents and Settings\geoff\My Documents\Websites\jquery\index.php(20): SoapClient->getStockQuote(Array) #2 {main} thrown in C:\Documents and Settings\geoff\My Documents\Websites\jquery\index.php on line 20
Run Code Online (Sandbox Code Playgroud)
我正在使用nusoap v1.94
我的Web服务代码如下所示:
function getStockQuote($symbol) {
$price = '1.23';
return $price;
}
require('nusoap.php');
$server = new soap_server();
$server->configureWSDL('stockserver', 'urn:stockquote');
$server->register("getStockQuote",
array('symbol' => 'xsd:string'),
array('return' => 'xsd:decimal'),
'urn:stockquote',
'urn:stockquote#getStockQuote');
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)
? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
Run Code Online (Sandbox Code Playgroud)
我知道一个原因是在你的服务器脚本中的php标签之前或之后有空格,但事实并非如此.这让我疯了几个小时!任何帮助将非常感激.
很晚,但添加我的修复,以造福他人.当我在Windows上将Apache服务器从2.2更改为2.4并将PHP 5.4.10更改为5.6.18时,我遇到了类似的错误.客户端应用使用php 5.6.1.为了解决这个问题,我做了以下几点:
将SOAP版本参数传递给SoapClient:
'soap_version'=> SOAP_1_1
在服务器php.ini配置文件中我添加了:
always_populate_raw_post_data = -1
| 归档时间: |
|
| 查看次数: |
61343 次 |
| 最近记录: |