2012-09-14 69 views
3

我已經嘗試了一段時間得到這個SoapRequest但我失敗:WSDL和SoapClient的PHP +自己的命名空間

<?xml version="1.0" encoding="UTF-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > 
    <soap:Body xmlns:gog="http://www.test.nms"> 
    <gog:GenerateRequest> 
     <gog:Application>TestApp</gog:Application> 
     <gog:User>TestUser</gog:User> 
     <gog: RequestCreateOnly> 
     <gog:Count>1</gog:Count> 
     <gog:Subject>Test</gog:Subject> 
     </gog: RequestCreateOnly> 
    </gog:GenerateRequest> 
    </soap:Body> 
</soap:Envelope> 

我必須把它寫在PHP。 問題是:

如何更改命名空間? 如何更改肥皂標籤? 非常感謝您的建議!

+0

你到目前爲止嘗試了什麼?你爲什麼要/想改變命名空間?你的意思是哪個命名空間,xmlns:soap或xmlns:gog? –

回答

0

我經常使用這些類型的請求的NuSOAP庫。我在下面列出了一段示例代碼,它對你有幫助嗎?

require_once('path-to-nusoap/nusoap.php'); 

$client = new nusoap_client("http://www.mywebservicehere.com", 'wsdl'); 
$client -> setDefaultRpcParams(true); 
$client -> useHTTPPersistentConnection(); 
$client -> soap_defencoding = 'UTF-8'; 
$client -> setUseCurl(true); 

$request = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
       <soap:Body xmlns:gog="http://www.test.nms"> 
        <gog:GenerateRequest> 
         <gog:Application>TestApp</gog:Application> 
         <gog:User>TestUser</gog:User> 
         <gog: RequestCreateOnly> 
          <gog:Count>1</gog:Count> 
          <gog:Subject>Test</gog:Subject> 
         </gog: RequestCreateOnly> 
        </gog:GenerateRequest> 
       </soap:Body> 
      </soap:Envelope>'; 

$results = $client->send($request,'http://www.actionurlhere.com');