2017-02-25 54 views
0

我有以下肥皂字符串。如何將soap作爲字符串傳遞給php soapclient

$str = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">'; 
$str .= '<soapenv:Header/>'; 
$str .= '<soapenv:Body>'; 
$str .= '<Username>uname1</Username>'; 
$str .= '<Password>upassword1</Password>'; 
$str .= '<RequestType>GetDiamonds</RequestType>'; 
$str .= '<ClientId>51</ClientId>'; 
$str .= '<MySoapReq>'; 
$str .= '<Params>'; 
$str .= '<Diamond_ID>%18112%</Diamond_ID>'; 
$str .= '<Diamond_ID>%1625%</Diamond_ID>'; 
$str .= '<Diamond_ID>%18625%</Diamond_ID>'; 
$str .= '</Params>'; 
$str .= '</MySoapReq>'; 
$str .= '</soapenv:Body>'; 
$str .= '</soapenv:Envelope>'; 

我想以下面的方式調用它,但沒有得到如何將字符串傳遞給肥皂請求。

$client = new SoapClient(null, array('location' => 'http://localhost:8080/testsoap', 
            'uri'=>'http://localhost:8080/testsoap' 
            )); 

我也嘗試在這裏給用戶名和密碼,但它沒有工作,然後我試着下面。

$return = $client->__soapCall("GetDiamonds", 
    array(new SoapParam($str)) 
); 

任何建議如何我可以傳遞上面的字符串在肥皂請求和獲得迴應?我是以正確的方式做還是應該有其他方法呢?

回答

0

將參數傳遞給Soap Web Service的最好和最快捷的方式是使用WSDL到php生成器,因爲您不會懷疑如何構造請求。

嘗試PackageGenerator項目,您會發現構建請求很容易(除非您故意這麼做,否則不會發生任何錯誤;))。另外,收到的答覆很容易處理。每個部分都是一個對象。

相關問題