可能な限り小さなコードでサーバーへのSOAPコールを作成しようとしています。しかし、私は自分自身を認証する問題を持っているalreatyです(その呼び出しのために必要なヘッダーはありません)。これは私が持っているコードです:PHP SOAPコールでのバージョンの不一致
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
header('Content-Type: text/html; charset=utf-8');
$data = array('Username' => 'someusername', 'Userpass' => 'somepass');
try
{
$client = new SoapClient(null, array(
"location" => "http://relaxdays.plentymarkets-x1.com/plenty/api/soap/version115/?xml",
"uri" => "http://relaxdays.plentymarkets-x1.com/plenty/api/soap/version115/",
"trace" => true,
"soap_version" => SOAP_1_1,
"exceptions" => false
));
$response = $client->__soapCall("PlentySoapRequest_GetAuthentificationToken", $data);
}
catch (Exception $e)
{
echo "Error!";
echo $e -> getMessage();
echo '<br/><br/>Last response:<button type="button" onclick="if(document.getElementById(\'spoiler1\').style.display==\'none\') {document.getElementById(\'spoiler1\') .style.display=\'\'}else{document.getElementById(\'spoiler1\') .style.display=\'none\'}">Show/Hide</button><div id="spoiler1" style="display:none; font-family:monospace;">'. htmlspecialchars($client->__getLastResponse()).'</div>';
}
echo '<br/><br/>Last request:<button type="button" onclick="if(document.getElementById(\'spoiler2\').style.display==\'none\') {document.getElementById(\'spoiler2\') .style.display=\'\'}else{document.getElementById(\'spoiler2\') .style.display=\'none\'}">Show/Hide</button><div id="spoiler2" style="display:none; font-family:monospace;">'. htmlspecialchars($client->__getLastRequest()).'</div>';
echo '<br/><br/>Response:<button type="button" onclick="if(document.getElementById(\'spoiler3\').style.display==\'none\') {document.getElementById(\'spoiler3\') .style.display=\'\'}else{document.getElementById(\'spoiler3\') .style.display=\'none\'}">Show/Hide</button><div id="spoiler3" style="display:none; font-family:monospace;">'. htmlspecialchars($response).'</div>';
?>
しかし、私が試してみても、それは動作していないようです。私が来て遠いが、このエラーである:
SoapFault exception: [VersionMismatch] Wrong Version in /var/www/htdocs/plentyimport/tester.php:18
Stack trace: #0 /var/www/htdocs/plentyimport/tester.php(18): SoapClient->__soapCall('PlentySoapReque...', Array) #1 {main}
私はすでに(。/version112/
など)"soap_version" => SOAP_1_2
を使用して、または別のバージョンにソープURLを切り替える試みたが、エラーはわずかの距離に行きたくありません。
ご協力いただければ幸いです。
はこのように、あなたが最初のパラメータとしてSOAPの定義を渡す必要が
よろしくお願いします。ご協力いただきありがとうございます。しかし、データ配列の名前は無関係なようです。元の '$ data'を使って完全に動作し、' __soapCall'メソッドの '$ data'を別の' array() 'にラップします。 ありがとう!! – virhonestum