使用Curl命令(linux)执行soap请求时出错

时间:2015-09-29 06:12:14

标签: curl soap

我有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]

请注意一下如何让这个移动和放大因为我是这个论坛的新手,所以我最好用标签测试我的等级,但上面有一些问题(错误)

2 个答案:

答案 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>