在php 5.6(php soap)中创建webservice并使用php nusoap库创建问题

时间:2016-08-28 05:27:35

标签: php soap-client nusoap

我有一个带有nusoap库的web服务,nusoap在php 5.3和5.5上运行正常,但是目前我正在处理php 5.6并且在使用nusoap库时遇到以下错误:

Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0

我对这个问题进行了很多研究,并没有成功。

我试图找到兼容版本的nusoap与php 5.6但找不到任何解决方案,最后决定使用SoapServer和SoapClient并使用以下代码进行测试:

<?php
class MyAPI {
    function hello() {
        return "Hello";
    }
}
$options=array('uri'=>'http://xx.com:800/webservice/');
$server = new SoapServer(NULL,$options);
$server->setClass('MyAPI');
$server->handle();
?>

以及作为客户端文件:

<?php
$options = array('location' => 'http://xx.com:800/webservice/server.php', 
                  'uri' => 'http://xx.com:800/webservice/');
$api = new SoapClient(NULL, $options);
echo $api->hello();
 ?>

但是当我调用客户端文件时遇到以下错误:

Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in PATH\webservice\client.php:11 Stack trace: #0 PATH\webservice\client.php(11): SoapClient->__call('hello', Array) #1 PATH\webservice\client.php(11): SoapClient->hello() #2 {main} thrown in PATH\webservice\client.php on line 11
你能给我一些好的和最好的解决方案吗?

1 个答案:

答案 0 :(得分:2)

$ PHP_POST_RAW_DATA在PHP 5.6中已弃用 你必须使用file_get_contents(&#34; php:// input&#34;);