使用nusoap调用webservice时遇到错误

时间:2014-06-17 09:24:34

标签: php web-services wsdl nusoap

我使用nusoap来调用这样的web服务:

<?php
      require 'nusoap/lib/nusoap.php';       
      $client = new nusoap_client('http://webserviceSite.com/webservices/globalservices.asmx?wsdl', 'WSDL');    

      $error = $client->getError();

      if ($error) {
        die("client construction error: {$error}\n");
      }    

      $answer = $client->call('GetCaptchaImage');

      $error = $client->getError();

      if ($error) {
        print_r("res:".$client->response);
        print("\n");
        print_r("debug:".$client->getDebug());
        die();
      }    

      print_r($answer);  
              ?>

但是我收到了这个错误: `&#34; wsdl错误:HTTP错误:在connect()之前无法打开到服务器http://webserviceSite.com/webservices/globalservices.asmx?wsdl的套接字连接。这通常是查找主机名的问题。 &#34;

请帮助我。我无法理解这个错误

1 个答案:

答案 0 :(得分:1)

此错误正是它所说的:“无法打开到服务器的套接字连接”。先前的SOAP通信客户端必须能够建立HTTP TCP连接(通常在端口80上)。此错误表示您的客户端无法建立此类连接。它可能是由很多因素造成的:客户端和服务器之间的防火墙,服务器不喜欢你的客户端,网络代理的方式不允许你连接,没有路由等等。

从您运行客户端的框中,您应该能够:

telnet webserviceSite.com 80

你应该看到类似的东西:

Connected to webserviceSite.com.
Escape character is '^]'

然后,如果您键入几个字符并按Enter键,您应该从远程服务器获取错误页面并且连接应该关闭。除非您可以让客户端盒可靠地连接到远程http主机,否则您的soap调用将失败。