我有curl命令将soap请求发布到Web服务。我有一个文件(query.xml),它附有所有的肥皂信息,我似乎无法正确发布它。
curl命令
curl -s -H "Content-Type: text/soap+xml;charset=UTF-8" -H "SOAPAction:" -d @query.xml http://10.130.9.79:7782/services/CBSInterfaceBusinessMgrService
query.xml
<q2:QueryBasicInfoRequestMsg
xmlns:q0="http://www.huawei.com/bme/cbsinterface/cbs/businessmgr"
xmlns:q1="http://www.huawei.com/bme/cbsinterface/common"
xmlns:q2="http://www.huawei.com/bme/cbsinterface/cbs/businessmgrmsg">
<parameter name="enableREST">true</parameter>
<RequestHeader>
<q1:CommandId>QueryBasicInfo
</q1:CommandId>
<q1:Version>1
</q1:Version>
<q1:TransactionId/>
<q1:SequenceId>1
</q1:SequenceId>
<q1:RequestType>Event
</q1:RequestType>
<q1:SerialNo>03020000003
</q1:SerialNo>
</RequestHeader><QueryBasicInfoRequest>q0:SubscriberNo>9150000014</q0:SubscriberNo> <q0:QueryType>3</q0:QueryType> </QueryBasicInfoRequest</q2:QueryBasicInfoRequestMsg>
错误
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header> <wsa:ReplyTo><wsa:Address>http://www.w3.org/2005/08/addressing/none
urn:uuid:AAC81E84BC63EF7AA81443502795856131 http://www.w3.org/2005/08/addressing/soap/fault faultstring&gt; com.ctc.wstx.exc.WstxUnexpectedCharException:prolog中的意外字符' - '(代码45);预期'&lt;'在[row,col {unknown-source}]:[1,22]
请注意一下如何让这个移动和放大因为我是这个论坛的新手,所以我最好用标签测试我的等级,但上面有一些问题(错误)
答案 0 :(得分:0)
curl命令行非常完美。你的肥皂信封有问题。我可以看到你没有正确关闭标签。缺少>
那里
</QueryBasicInfoRequest</q2:QueryBasicInfoRequestMsg>
^ missing '>' character here
答案 1 :(得分:0)
您的示例XML不正确,无法解析。使用下面一个,我已手动更正。 我不确定您的Web服务是否真的是SOAP服务,因为我根本不会在您的请求中找到SOAPEnvelope。无论如何,我认为下面应该适合你。
<q2:QueryBasicInfoRequestMsg
xmlns:q0="http://www.huawei.com/bme/cbsinterface/cbs/businessmgr"
xmlns:q1="http://www.huawei.com/bme/cbsinterface/common"
xmlns:q2="http://www.huawei.com/bme/cbsinterface/cbs/businessmgrmsg">
<parameter name="enableREST">true</parameter>
<RequestHeader>
<q1:CommandId>QueryBasicInfo
</q1:CommandId>
<q1:Version>1
</q1:Version>
<q1:TransactionId/>
<q1:SequenceId>1
</q1:SequenceId>
<q1:RequestType>Event
</q1:RequestType>
<q1:SerialNo>03020000003
</q1:SerialNo>
</RequestHeader>
<QueryBasicInfoRequest><q0:SubscriberNo>9150000014</q0:SubscriberNo>
<q0:QueryType>3</q0:QueryType>