求助:VBA |将请求从excel发布到Webservice

问题描述

我想从Excel文件通过VBA将请求发布到Web服务。

这是我到目前为止所拥有的:

Sub testxml()

Dim sEnv As String 'Envelope for xml file 
.
.
.

Dim strPath As String
Dim ObjHTTP As New MSXML2.XMLHTTP 
Dim sURL As String

strPath = "M:\[…]\mydomTestfile.xml"
sURL = "https://my35[...]ign.com"

Dim myxml As String
Dim myDom As MSXML2.DOMDocument
Dim myHTTP As MSXML2.XMLHTTP

Set myHTTP = CreateObject("msxml2.xmlhttp")
Set myDom = CreateObject("MSXML2.DOMDocument")
  
myDom.async = False

myDom.LoadXML (sEnv)
myDom.Save (strPath)

myHTTP.Open "Post",sURL,False,"USER","PASSWORD"
myHTTP.setRequestHeader "Content-Type","text/xml"
myHTTP.send (myDom.XML)
  
Debug.Print myHTTP.responseText

End Sub

到目前为止,该方法有效,创建并发布了一个xml文件

我收到以下答复:

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header/>
 <soap-env:Body>
  <soap-env:Fault>
   <faultcode>soap-env:VersionMismatch</faultcode>
   <faultstring xml:lang="en">Wrong SOAP Version</faultstring>
   <detail/>
  </soap-env:Fault>
 </soap-env:Body>
</soap-env:Envelope>

我同事的问题是,我需要进一步指定POST请求,以将其发布到wsdl端口“ binding_SOAP12”。

wsdl Screenshot

黑框下的URI相同。

关于如何进一步指定此内容,或者是否必须使用其他方法,我找不到任何内容。 如果您能指出正确的方向,我将不胜感激。

编辑:

我需要更改的只是这一部分:

...
myHTTP.setRequestHeader "Content-Type","text/xml"
...

...
myHTTP.setRequestHeader "application/soap+xml","text/xml"
...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)