我使用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;
请帮助我。我无法理解这个错误
答案 0 :(得分:1)
此错误正是它所说的:“无法打开到服务器的套接字连接”。先前的SOAP通信客户端必须能够建立HTTP TCP连接(通常在端口80上)。此错误表示您的客户端无法建立此类连接。它可能是由很多因素造成的:客户端和服务器之间的防火墙,服务器不喜欢你的客户端,网络代理的方式不允许你连接,没有路由等等。
从您运行客户端的框中,您应该能够:
telnet webserviceSite.com 80
你应该看到类似的东西:
Connected to webserviceSite.com.
Escape character is '^]'
然后,如果您键入几个字符并按Enter键,您应该从远程服务器获取错误页面并且连接应该关闭。除非您可以让客户端盒可靠地连接到远程http主机,否则您的soap调用将失败。