0
所以我在PHP中使用Soap客戶端,我試圖對某些WSDL發出請求。我嘗試了一個特定的輸出,但它似乎離我嘗試做的有點遠。也許我不這樣做。我對WSDL有點新鮮。Soap PHP WSDL XML格式
下面是結果我想:
<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 exception: [Client] SOAP-ERROR: Encoding: object has no 'sendmessage' property";
編輯:通過獲取inspir上作出了一些改進在一些帖子通貨膨脹
這裏是我的代碼現在:
$_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>
但我收到這個迴應:
Unexpected subelement sendSms
做的「loc:」是否強制解決這個問題?因爲當我在原始XML添加它,它說,
Undeclared namespace prefix "loc"
感謝,