Ошибка подключения при доступе к веб-службе на Shared Hosting с использованием PHP Soap
Я пытаюсь получить доступ к веб-сервису, используя PHP и SOAP (точнее, библиотеку NuSoap), но продолжаю нажимать следующую ошибку:
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-адрес в расположение "rsvpdb01", однако я не уверен, как сделать то же самое на веб-сервере (или если это действительно решит проблему),
Основы моего сценария:
<?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);
}
}
?>
Кто-нибудь может пролить свет на это?
1 ответ
Проблема заключалась в том, что веб-служба указывала на локальный компьютер, и мой сервер не мог преобразовать этот физический адрес с IP-адреса, который мне нужно было использовать для подключения.
Мне пришлось запросить root-доступ на моем хост-сервере, чтобы я мог отредактировать файл 'hosts' с IP-адресом для локальной машины, это было просто добавить:
123.456.5.1 xxxdb01