0
我想修改我在VBA中編寫的代碼(並且工作正常)到VB.Net中。將SOAP消息從VBA轉換到VB.Net
這是代碼:
Sub SOAP(ByVal SOAPCommand As String)
Dim sURL As String
Dim sEnv As String
Dim xmlDoc As New DOMDocument
Dim sEnvlength As Integer
Dim responseText As String
Set ObjHttp = New MSXML2.XMLHTTP
sURL = "http://localhost:9002"
sEnv = "<?xml version=""1.0"" encoding=""UTF-8""?>"
sEnv = sEnv & "<SOAP-ENV:Envelope xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"">"
sEnv = sEnv & "<SOAP-ENV:Body>"
sEnv = sEnv & "<" & SOAPCommand & "/>"
sEnv = sEnv & "</SOAP-ENV:Body>"
sEnv = sEnv & "</SOAP-ENV:Envelope>"
sEnvlength = Len(sEnv)
ObjHttp.Open "POST", sURL, False
ObjHttp.SetRequestHeader "User-Agent", "Dispatcher"
ObjHttp.SetRequestHeader "Content-Type", "text/xml; charset=us-ascii"
ObjHttp.SetRequestHeader "Host", "localhost:9002"
ObjHttp.SetRequestHeader "Content-Length", sEnvlength
ObjHttp.SetRequestHeader "Connection", "close"
ObjHttp.send (sEnv)
xmlDoc.LoadXML (ObjHttp.responseText)
responseText = ObjHttp.responseText
If Not (responseText = "") Then
MsgBox (responseText)
End If
End Sub
我知道,我不能用在VB.Net的MSXML了,但我還沒有找到一個方便的解決方案又如何修改我的代碼,這樣我可以在我的Visual Studio項目中使用它。
到目前爲止,我已經將此代碼作爲一個單獨的Excel文件中的宏,我使用新的Excel.Application方法每次打開和關閉這些文件,但因爲它必須重複數千次(用於一個模擬),這看起來不是一個好的解決方案。
有沒有人有一個想法,我可以通過VB.Net發送我的SOAP消息?
我確實擁有Visual Studio 2013 Ultimate。
感謝您的回覆, 不幸的是,我可以不使用Web服務,因爲它是在你的鏈接desribed。該服務沒有任何WSDL文件。我只是將格式如上所示的消息發送到服務,而服務會將其他消息發送回我的程序正在監聽的端口。雖然是一個很好的提示,但鏈接並沒有幫助我的情況。 – Kazaa
你確定沒有WSDL嗎?什麼是寫入服務?這是非常罕見的事情。如果你不能正常使用它,那麼至少看看「[XML文字概述(Visual Basic)](http://msdn.microsoft.com/zh-cn/library/bb384629.aspx)」以查看更好如果必須的話,可以創建XML。 –