Подключение к серверу с получением «Не удалось подключиться к хосту» с использованием PHP и SOAP Ligth (PERL) - PullRequest
1 голос
/ 03 августа 2011

Я пытаюсь заставить работать какой-нибудь SOAP-запрос с использованием SOAP Ligth и PHP на запрашивающей стороне и PERL на сервере, с которого я запрашиваю информацию.Я никогда раньше не работал с SOAP.

При печати трассировки и т. Д. URL, к которому я пытаюсь подключиться, выглядит проводным: "http://192.168.1.101/otrs/rpc.pl". Я думаю, это может быть частью проблемы (но что я знаю ...). Здесьэто след:

Fault message: Could not connect to host
Fault code: 0
array(2) {
  [0]=>
  array(4) {
    ["function"]=>
    string(11) "__doRequest"
    ["class"]=>
    string(10) "SoapClient"
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(5) {
      [0]=>
      string(645) "
userpasswordTicketObjectTicketCreateNumber
"
      [1]=>
      string(35) "http://192.168.1.101/otrs/rpc.pl"
      [2]=>
      string(13) "Core#Dispatch"
      [3]=>
      int(1)
      [4]=>
      int(0)
    }
  }
  [1]=>
  array(6) {
    ["file"]=>
    string(54) "/Library/WebServer/Documents/SMICTestProject/index.php"
    ["line"]=>
    int(37)
    ["function"]=>
    string(10) "__soapCall"
    ["class"]=>
    string(10) "SoapClient"
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(2) {
      [0]=>
      string(8) "Dispatch"
      [1]=>
      array(4) {
        [0]=>
        string(8) "user"
        [1]=>
        string(11) "password"
        [2]=>
        string(12) "TicketObject"
        [3]=>
        string(18) "TicketCreateNumber"
      }
    }
  }
}
Fault trace: // Of some reason this ends up after the actual trace
Fault line: 37

Вот код, который генерирует исключение:

<code>    try {
$client = new SoapClient(null, array(

    'location'  => "http://192.168.1.101/otrs/rpc.pl",
    'uri'       => "Core",
    'trace'     => 1,
    'login'     => "user",
    'password'  => "password",
    'style'     => SOAP_RPC,
    'use'       => SOAP_ENCODED
));


$ticketnumber = $client->__soapCall("Dispatch", array("user", "password", "TicketObject", "TicketCreateNumber"));
//Here happens a lot of things, but since this code is never reached I skip including it. 

} catch (SoapFault $fault) {
//trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
echo "Fault message: ".$fault->getMessage()."\n";
echo "Fault code: ".$fault->getCode()."\n";
echo "Fault trace: ".var_dump($fault->getTrace())."\n";
echo "Fault line: ".$fault->getLine()."\n";
echo "Bad SOAP request\n";
echo "REQUEST:\n".$client->__getLastRequest()."\n";
echo "RESPONSE:\n".$client->__getLastResponse()."\n";
echo "
";выход;}

В чем проблема и как я могу это исправить?Если я закодирую URL ...?

Я включил только то, что мне показалось необходимым, пожалуйста, дайте мне знать, если я должен что-то добавить.Нет абсолютно ничего в любых журналах, которые я могу включить сюда, что я нахожу странным.

Я использую OpenSUSE / Apache на стороне сервера и Mac / Apache / PHP на стороне клиента.

Заранее спасибо!

1 Ответ

3 голосов
/ 03 августа 2011

У вас есть UTF-8 BOM в вашем URL. Используйте hex-редактор, чтобы вытащить его (а также сохранить все файлы без BOM)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...