Я пытаюсь отправить свой XML-файл через API. Я сделал это без проблем, используя приведенный ниже код, однако, когда я пытаюсь отправить ФАЙЛ, он не будет работать, я теперь получаю в браузере:
Data at the root level is invalid. Line 1, position 39.
Не пытаясь отправить файл работает:
' create the Xml that the Msxml2.serverXmlHttp object will send to the Webservice
dim Xml_to_Send
Xml_to_Send = "<?xml version=""1.0"" encoding=""utf-8"" ?>"
Xml_to_Send = Xml_to_Send & "<xmldata>"
Xml_to_Send = Xml_to_Send & " <Products>"
Xml_to_Send = Xml_to_Send & " <ProductCode>THE-TEST</ProductCode>"
Xml_to_Send = Xml_to_Send & " <ProductPrice>100.00</ProductPrice>"
Xml_to_Send = Xml_to_Send & " </Products>"
Xml_to_Send = Xml_to_Send & "</xmldata>"
oXMLHttp.Send(Xml_to_Send)
Но при попытке отправить ФАЙЛ НЕ работает, вот ПОЛНЫЙ код. Файл скопирован из кода выше, поэтому я знаю, что файл хорош:
<%@ Page Title="MAIN" Language="vb" Explicit="true" AspCompat="true" %>
<%
Dim doc As XDocument = XDocument.Load("sample.xml")
' create the Msxml2.serverXmlHttp object needed to post the Xml to the WebService
Dim oXMLHttp
oXMLHttp = Server.CreateObject("Msxml2.serverXmlHttp")
oXMLHttp.open("POST", "http://www.mysite.com/net/WebService.aspx?Login=mysite@mysite.com&EncryptedPassword=xxxx&Import=Update", False)
oXMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8")
oXMLHttp.setRequestHeader("Content-Action", "xmldata")
oXMLHttp.setTimeouts(100000, 100000, 600000, 9999999)
Server.ScriptTimeout = 10800
' Send the Xml
oXMLHttp.Send(String.Format("{0}\n\r{1}", doc.Declaration.ToString(), doc.ToString()))
' Receive the Xml
Dim Xml_Returned
Xml_Returned = oXMLHttp.responseText
' Validate the Xml
Dim xmlDoc
xmlDoc = Server.CreateObject("Msxml2.DOMDocument")
xmlDoc.loadXML(Xml_Returned)
If (Len(xmlDoc.text) = 0) Then
Xml_Returned = ("<BR><B>ERROR in Response xml:<BR>ERROR DETAILS:</B><BR><HR><BR>") & Xml_Returned
End If
' Display the Xml on the browser
Response.Write(Xml_Returned)
' clean up
Xml_to_Send = Nothing
oXMLHttp = Nothing
doc = Nothing
xmlDoc = Nothing
Xml_Returned = Nothing
%>
UPDATE
Я обновил приведенный выше код из ответа ниже. Я сейчас получаю в браузере:
Data at the root level is invalid. Line 1, position 39.
Вот XML, который я отправляю в качестве теста:
<xmldata>
<Products>
<ProductCode>AMN-ACE14</ProductCode>
<ProductPrice>3800.00</ProductPrice>
</Products>
</xmldata>