php - 在 php 5.6(php Soap) 中创建 Web 服务以及 php nusoap 库的问题

标签 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

你能给我好的、最好的解决方案吗?

最佳答案

$HTTP_POST_RAW_DATA 在 PHP 5.6 中已弃用 你必须使用 file_get_contents("php://input");

关于php - 在 php 5.6(php Soap) 中创建 Web 服务以及 php nusoap 库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39188285/

相关文章:

PHP 重写 AJAX post 请求

php - mktime 还是 strtotime?

php - 通过ajax与数据库通信

ssl - Apache CXF soap 客户端使用 jCIFS SSL + NTLM 认证 JDK 5

python 齐普 : send un-escaped xml as content

php - nusoap 简单服务器

magento - 在 Magento 中访问 $this->getAddToCartUrl($_product)

.net - 如何在 Soap Web 服务中禁用验证响应

php - 使用 php nusoap 下载 mysql 表

php - 为什么使用 NuSOAP 而不是 PHP SOAP?有什么好处吗?