【问题标题】:php soap response is null, but __last_response is notphp 肥皂响应为空,但 __last_response 不是
【发布时间】:2016-03-28 09:37:10
【问题描述】:

我使用 nusoap 作为服务文件,这里是我的 service.php

require_once "lib/nusoap.php";
function getProd($category) {
    if ($category['category'] == "books") {
        return join(",", array(
            "The WordPress Anthology",
            "PHP Master: Write Cutting Edge Code",
            "Build Your Own Website the Right Way")
        );
    } else {
        return "No products listed under that category: ".$category['category'];
    }
}
$server = new soap_server();
$server->configureWSDL("productlist", "urn:productlist");
$server->register("getProd",
    array("category" => "xsd:string"),
    array("return" => "xsd:string"),
    "urn:productlist",
    "urn:productlist#getProd",
    "rpc",
    "encoded",
    "Get a listing of products by category"
);
$post = file_get_contents('php://input');
$server->service($post);

生成的 WSDL 文件 url 是

https://doktormobil.ru/cms/soap/service.php?wsdl

我的client.php是

$client = new SoapClient("https://doktormobil.ru/cms/soap/service.php?wsdl", array('trace' => 1));
$params = array("category" => "books");
$response = $client->getProd($params);
var_dump($client);
var_dump($response);

响应为 NULL,但在 $client->__last_response 中,我从服务中得到了正确的答案。

可能是什么问题?

谢谢。

【问题讨论】:

  • 使用您的代码 sn-p,我的响应是 string(41) "No products listed under that category: A"。你确定你没有看错方向吗?
  • 你使用相同的client.php代码?我的 var_dump($response);此处为空 URL 到 client.php doktormobil.ru/cms/soap/client.php
  • 是的,完全相同的代码。
  • 是的,当我在另一台服务器上运行 client.php 时确实如此

标签: php soap nusoap


【解决方案1】:

好的!我处理这个。正如注意到 F0G 一样,他的结果与我不同。问题是 PHP 缓存了我的 WSDL 文件。当我把

ini_set("soap.wsdl_cache_enabled", "0");

一切顺利。谢谢。

【讨论】:

    猜你喜欢
    • 2017-11-09
    • 1970-01-01
    • 2013-10-06
    • 2012-09-18
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 2020-09-27
    相关资源
    最近更新 更多