来自VBA的SOAP请求

时间:2019-07-22 12:46:09

标签: excel vba soap

我想使用VBA excel发出SOAP请求 VBA请求

Public Sub httpclient()
        Dim Req As Object
        Dim sEnv As String
        Dim Resp As New MSXML2.DOMDocument60
        Set Req = CreateObject("MSXML2.XMLHTTP")
        Set Resp = CreateObject("MSXML2.DOMDocument.6.0")
        Req.Open "GET", "https://api.etadirect.com/soap/capacity/?wsdl", False
        sEnv = sEnv & "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope"">"
         sEnv = sEnv & "  <soapenv:Header/>"
         sEnv = sEnv & "  <soapenv:Body>"
         sEnv = sEnv & "   <Request>"
         sEnv = sEnv & "    <now>2019-07-22</now>"
         sEnv = sEnv & "    <login>string</login>"
         sEnv = sEnv & "    <company>string</company>"
         sEnv = sEnv & "    <auth_string>string</auth_string>"
         sEnv = sEnv & "   </Request>"
         sEnv = sEnv & "  </soapenv:Body>"
         sEnv = sEnv & "</soapenv:Envelope>"
    ' Send SOAP Request
        Req.Send (sEnv)
        Debug.Print Req.responseText
    End Sub

SOAP UI请求

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:toa:capacity">
       <soapenv:Header/>
       <soapenv:Body>
          <urn:get_quota_data>
             <user>
                <now>2019-07-22</now>
                <login>string</login>
                <company>string</company>
                <auth_string>string</auth_string>
             </user>
          </urn:get_quota_data>
       </soapenv:Body>
    </soapenv:Envelope>

我希望在下面获得结果,而不是获得许多xml标记。

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Body>
          <SOAP-ENV:Fault>
             <faultcode>SOAP-ENV:Client</faultcode>
             <faultstring>Bad request format - Mandatory parameter is absent: 'date'</faultstring>
             <detail>
                <errorCode>100</errorCode>
             </detail>
          </SOAP-ENV:Fault>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

缺少SOAPUI返回必需参数,因为我只写请求进行身份验证。 在VBA中,我没有收到此消息 问题是我在VBA代码中做错了什么。 你能帮我么? 最好的问候,

0 个答案:

没有答案