3

我正在尝试将格式正确的 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 并使用文件名。

4

1 回答 1

1

我建议使用这个库进行休息调用。目前 XML 解析需要一些变通方法,但它的代码比您编写的所有样板代码要少。,

于 2015-07-23T16:05:18.200 回答