簡體   English   中英

Soap PHP WSDL XML格式

[英]Soap PHP WSDL XML formatting

因此,我在PHP中使用Soap客戶端,並且嘗試在WSDL上發出請求。 我嘗試具有特定的輸出,但似乎與我嘗試的工作有點不同。 也許我做錯了。 我對WSDL有點陌生。

這是我想要的結果:

<SOAP-ENV:Body>
    <loc:sendSms>
           <loc:addresses>9000000000</loc:addresses>
           <loc:senderName>9000000</loc:senderName>
           <loc:message>test SMS</loc:message>
    </loc:sendSms>
</SOAP-ENV:Body>

這是我嘗試滿足我的要求的方法,但是以服務器錯誤結束:

            $MCIResp = (array) $_soapClient->__soapCall('sendSms', 
                'sendMessage' => array(
                    'addresses' => '9000000000',
                    'senderName' => '9000000',
                    'message'   => 'test SMS '

            )
        ); 

這是我從此請求中得到的錯誤:

“ SoapFault異常:[客戶端] SOAP錯誤:編碼:對象沒有'sendmessage'屬性”;

編輯:通過在某些帖子上獲得靈感在此基礎上進行了一些改進

現在是我的代碼:

$_soapClient = new SoapClient(
        null,
        array(
            'location' => 'http://someIP/parlayxsmsgw/services/SendSmsService?wsdl',
            'uri' => 'http://someIP/parlayxsmsgw/services/SendSmsService?wsdl',
            'trace' => 1,
            'cache_wsdl' => WSDL_CACHE_NONE,
            'use' => SOAP_LITERAL,
            'style' => SOAP_DOCUMENT,
             'stream_context' => stream_context_create(array(
                'http' => array(
                    'header' => 'servicekey: someservicekey'
                ),
            )),             
        )
    );
    $params = new \SoapVar("<sendSms><addresses>90000000000</addresses><senderName>90000000</senderName><message>test SMS</message></sendSms>",XSD_ANYXML);     

然后我做一個

$_soapClient->whatEverNameHereWillBeIgnored($params);

現在是我生成的XML:

  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
     <SOAP-ENV:Body>
      <sendSms>
       <addresses>989127184955</addresses>
       <senderName>98307066</senderName>
       <message>test SMS</message>
      </sendSms>
     </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

但我收到以下答復:

意外的子元素sendSms

“ loc:”是否必須解決此問題? 因為當我將其添加到原始xml中時,它說

未聲明的名稱空間前綴“ loc”

謝謝,

我強烈建議您使用WSDL到PHP的生成器,例如PackageGenerator ,它將簡化您的請求構造,因此您不必懷疑如何構造請求,這很清楚。

暫無
暫無

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

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