1

私は経験豊富な PHP プログラマーですが、SOAP についてはまったく知りません。顧客が DHL バッチ ラベルの自動生成を必要としているため、これを使用する必要があります。シンプルで効果的なヘルプが必要です。

生の XML リクエストを DHL に送信し、サンプル プログラムからメッセージをコピーしましたが、常に空の結果 (エラーなし) が返されます。私のPHPコードは次のようになります:

require_once('nusoap/lib/nusoap.php');

$endpoint = "https://test-intraship.dhl.com/intraship.57/jsp/Login_WS.jsp";

$client = 新しい nusoap_client($endpoint, false);

$msg = $client->serializeEnvelope("
<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\"
 xmlns:cis=\"http://dhl.de/webservice/cisbase\" xmlns:de=\"http://de.ws.intraship\">
<石鹸:ヘッダー>
<cis:Authentification><cis:user>bzalewski</cis:user>

(...)

");

$result=$client->send($msg, $endpoint);

$結果をエコーし​​ます。

前述のとおり、メッセージはコピーされたばかりなので、問題ないはずです。代わりに別のエンドポイントを試してみました: http://test-intraship.dhl.com/ws/1_0/ISService/DE.wsdl、結果もありません(エラーなし)。

助けてください。

4

2 に答える 2

3

使用soap_clientする場合は raw を渡す必要はありませんXML。代わりに、 を見て、WSDL呼び出す Web サービス関数と必要なパラメーターを決定します。次に、wsdl url を渡し、トレースが必要かどうか (デバッグなどに役立ちます) を渡して、SOAP クライアント オブジェクトを作成します。次に、この SOAP クライアント オブジェクトを使用して、呼び出したい Web サービス関数を呼び出します。関数呼び出しに必要なパラメーターがある場合は、それらを配列として渡します。提供された を使用してその関数WSDLを呼び出すサンプルコードを以下に投稿しました。getVersionこの関数は引数を必要としないので、何も渡していないことに注意してください。これがあなたが始めるのに役立つことを願っています..

<?
$client = new SoapClient('http://test-intraship.dhl.com/ws/1_0/ISService/DE.wsdl', array('trace' => 1));
$res = $client->getVersion();
print_r($res); 
?>

これにより、DHL Web サービスから次の値が返されます。

stdClass Object
(
    [Version] => stdClass Object
        (
            [majorRelease] => 1
            [minorRelease] => 0
            [build] => 14
        )

)
于 2012-09-27T03:11:25.523 に答える
1

Webサーバーはステータス200で応答しますか?空の応答が返ってくるとおっしゃいましたか?

この無料のGUIツール(http://webservicestudio.codeplex.com/)を使用して、Webサービスを呼び出して視覚化します。WSDLを簡単にロードして、呼び出しを開始できます。

ちなみに2つの仕事と勉強をするのはいい人です!がんばり続ける。

于 2012-09-27T02:43:14.507 に答える