Soap PHP WSDL XML格式
问题描述:
所以我在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"
感谢,