リクエスト側でSOAP LigthとPHPを使用している一部のSOAPリクエストを取得しようとしています。 。私は以前はSOAPで作業したことがありません。PHPとSOAP Ligth(PERL)を使用して「ホストに接続できませんでした」というサーバに接続しています
トレースなどを印刷すると、接続しようとしている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
は、例外を生成するコードは次のとおりです。
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 "</pre>";
exit;
}
何が問題であり、私はそれをどのような方法を修正することができますか? URLをエンコードする必要がありますか?
私は必要と思ったものだけを含めました。何か追加する必要がある場合はお知らせください。私がここに含めることができるログには絶対に何もありません。私はそれを奇妙なものとして見つけます。
私はサーバー側でOpenSUSE/Apacheを、クライアント側でMac/Apache/PHPを使用しています。
ありがとうございます!
ブラウザで 'http://192.168.1.101/otrs/rpc.pl'を開いたときに表示される内容は?なぜこの奇妙なキャラクターがここにいるのですか? – Zyava
ブラウザで開くと、Firefoxはサーバxn - 192-0gau00a.168.1.101を見つけることができません。私はなぜそのようなリンクが見えているのかわかりません、私はそれらの奇妙な文字を追加するために何もしません。 – Nicsoft
同じエラーです(ホストに接続できませんでした)。この奇妙なキャラクターを削除して、もう一度試してみてください。 – Zyava