我正在尝试将格式正确的 cxml 文件发布到远程服务器 url。我的代码建立了连接,但在实际的 SEND 命令上失败了。我不一定是 VBA 的新手,但我是 POSTING xml 并向该论坛发布帮助请求的新手。希望我做对了。
当我发布时,我得到状态 = 200 和“缺少 XML”的响应。看来 XML 数据实际上并没有上传到远程服务器
remoteurl = "http://myremoteurl.com/incoming"
FileNameXML = XML file read into a string variable
FileNameSource = fullpath & filename of XML file="C:\xmls\test00001.xml"
' I am calling the following function & storing response
xmlresp = HTTPPostTXT(remoteurl, FileNameXML, FileNameSource)
Function HTTPostTxt(ByVal sUrl As String, xmlText As String, ByVal xmlname As String)
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
XMLHTTP.Open "POST", sUrl, False
Set xmldom = CreateObject("Microsoft.XMLDOM")
xmldom.LoadXML xmlText
xmldom.Validate
' xmldom.xml does not error out but XML file does not get sent/uploaded
XMLHTTP.send xmldom.xml
MsgBox XMLHTTP.Status & " " & XMLHTTP.responseText ' Return Status # & reponseText
' I am storing response and status for troubleshooting
If XMLHTTP.Status <> 200 Then
Sheets(Shtname).Cells(iRow, 6).Value = XMLHTTP.responseText
HTTPPostTxt = "Failure"
Else
Sheets(Shtname).Cells(iRow, 6).Value = XMLHTTP.responseText
HTTPPostTxt = "Accepted"
End If
End Function
(1) 我正在寻求有关发送 XML 字符串数据的错误的帮助。这是假设这就是我无法发送数据的原因。这是我将 XML 文件读入 String 变量的方法
Function XMLFileString(ByVal XMLFileName As String) As String
Dim text, textline As String
Open XMLFileName For Input As #1
Do Until EOF(1)
Line Input #1, textline
text = text & textline
Loop
Close #1
XMLFileString = text
End Function
(2) 更改 SEND 命令以发送实际文件(使用完整路径和文件名)是一种选择。不确定要改变什么。我想我需要将 LOADXML 命令更改为 LOAD 并使用文件名。