簡體   English   中英

php soap空輸出

[英]php soap empty output

我是一名經驗豐富的PHP程序員,但我實際上並不知道SOAP。 現在我必須使用它,因為我的客戶需要自動生成DHL批處理標簽。 我需要一些簡單而有效的幫助。

所以我向DHL發送了一個原始XML請求,我已經從他們的示例程序中復制了該消息,但我總是得到一個空結果(沒有錯誤)。 我的PHP代碼如下:

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

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

$client = new 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\">
<soap:Header>
<cis:Authentification><cis:user>bzalewski</cis:user>

(...) 

");

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

echo $result;

如上所述,消息只是被復制,所以一定是好的。 我嘗試了另一個端點: http//test-intraship.dhl.com/ws/1_0/ISService/DE.wsdl ,但也沒有結果(沒有錯誤)。

請幫忙。

使用soap_client您不需要傳遞原始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
        )

)

Web服務器是否以狀態200響應? 你說你得到一個空洞的回答吧?

使用這個免費的GUI工具(http://webservicestudio.codeplex.com/)進行Web服務調用和可視化。 您可以輕松加載WSDL並開始撥打電話。

順便說一下,工作2個工作和學習是好東西! 保持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM