我尝试使用PHP和SOAP(确切地说是NuSoap库)访问Web服务,但仍然遇到以下错误:
HTTP Error: Couldn't open socket connection to server http://rsvpdb01/CRMWebService prior to connect(). This is often a problem looking up the host name.
在本地访问此服务时,有必要修改我的hosts文件,将IP地址重定向到&rs; rsvpdb01'位置,但我不确定如何在Web服务器上执行相同操作(或者如果这样可以解决问题)。
我的脚本的基础是:
<?php
// Pull in the NuSOAP code
require_once('nusoap/lib/nusoap.php');
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
// Create the client instance
$action_authenticate = array('Action'=> 'http://tempuri.org/ICRMWebServiceAPI/AuthenticateUser');
$client = new SoapClient('http://81.144.199.11/CRMWebService?wsdl',$action_authenticate);
$client->soap_defencoding = 'UTF-8';
// Call the SOAP method
$result = $client->call('AuthenticateUser', array('Username' => 'username', 'Password' => 'password'));
// Display the request and response
echo '<h2>Request</h2>';
echo '<pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2>';
echo '<pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
// Check for a fault
if ($client->fault) {
echo '<p><b>Fault: ';
print_r($result);
echo '</b></p>';
} else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<p><b>Error: ' . $err . '</b></p>';
} else {
// Display the result
print_r($result);
}
}
?>
有人可以对此有所了解吗?
答案 0 :(得分:0)
这里的问题是Web服务指向本地计算机,而我的服务器无法从我需要用于连接的IP地址转换该物理地址。
我不得不在我的托管服务器上请求root访问权限,这样我就可以使用本地机器的IP地址编辑'hosts'文件,这是一个简单的行添加如下:
123.456.5.1 xxxdb01