【问题标题】:No response of SOAP connection with PHPSOAP 与 PHP 连接无响应
【发布时间】:2012-06-26 15:25:30
【问题描述】:

我正在尝试在客户端和服务器之间建立 SOAP 连接。

首先在客户端,我用soap发送一个.php文件信息,这样我就可以看到请求和响应:

&client = new SOAPclient("http://.../service.wsdl",array('soap_version' => SOAP_1_1,'trace'=>1); 

之后我调用函数&client->handle_request(&request)

到目前为止一切正常。

我从wsdl文件http://..../index.php?soap=on调用服务器

if (soap == on)
{
    include server.inc
    &soapserver = new Juan_soap_server
    &soapserver->handle_request($request)
}

在 server.inc 中,我定义了类 Juan_soap_server 和函数 handle_request

我的问题是程序执行函数handle_request,完成了所有任务,但之后我的客户端没有任何响应。

我已经在服务器上运行了一个简单的客户端服务器测试,它工作正常,所以不是soap安装的问题。

你有什么线索吗?

【问题讨论】:

  • 好吧,(除了大量的解析错误,我认为这是“伪代码”):你实际上并没有对返回做任何事情。您认为它应该显示什么以及为什么?
  • 是的对不起,但它的伪代码。我调用函数handle_request($request) $request 变量写入客户端并通过SOAP 传输到服务器。服务器编辑$request,然后我在服务器的handle_request() 函数中返回$request。所以 server.inc 类似于那个 class Juan_soap_server{ public function handle_request($request){ return &request} } $server = new SOAPServer(NULL, array('uri'=>"urn:service")); $server->setClass('Juan_soap_server'); $server->handle();

标签: php soap


【解决方案1】:

根据我的经验,当我过去遇到这种情况时,我返回的对象没有对 Web 服务定义 (wsdl) 文件中定义的类型或复杂类型的结构进行数学计算。

我建议您将返回类型更改为字符串,然后从服务器端返回一个简单的字符串。如果这行得通,那么您确定这与您返回的数据结构有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    相关资源
    最近更新 更多