Jag försöker skicka xml via httprequest i msxml. Problemet är att alla tecken >128 blir "?" hos mottagaren. Om jag sätter utf-8 encoding blir det två frågetecken istället ("??") Eftersom du inte sätter nån encoding bör det bli default UTF-8, om mottagaren tar emot som detta borde det fungera. Varför använder du inte en proxy istället för att göra egna anrop? Troligen måste du köra base64 på den strängen som skickas, och likaså decoda den när man tar emot den igen. Hittade en lösning.Problem med åäö
Koden ser ut så här:
<code>
' Create soap header
Dim SoapDoc, env
Set SoapDoc = CreateObject("msxml2.DOMDocument.4.0")
SoapDoc.AppendChild SoapDoc.CreateProcessingInstruction("xml", "version='1.0'")
Set env = SoapDoc.AppendChild(SoapDoc.CreateNode(1,"soap:Envelope", "http://schemas.xmlsoap.org/soap/envelope/"))
Set env = env.appendChild(SoapDoc.CreateNode(1, "soap:Body", "http://schemas.xmlsoap.org/soap/envelope/"))
' Use myUpdate method
Set env = env.appendChild(SOapDoc.CreateNode(1, "MyUpdate", "http://tempuri.org/"))
' MyRoot is an xml document
env.AppendChild(SoapDoc.CreateNode(1, "xmldata", "http://tempuri.org/")).AppendChild MyRoot
' Create httprequest header
Dim xmlhttp : Set xmlhttp = CreateObject("Msxml2.XMLHTTP.4.0")
xmlhttp.open "POST", "http://myurl...", false
xmlhttp.setRequestHeader "MyUpdate", "POST myurl/MyUpdate HTTP/1.1"
xmlhttp.setRequestHeader "SOAPAction", "http://tempuri.org/MyUpdate"
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send SoapDOc
</code>
Om jag sparar SoapDoc som en fil så ser allt bra ut, Documentet tas emot utan felmeddelanden men åäö blir "?" eller "??" beroende på om jag satt encoding till "ISO8859-1" eller "UTF-8"
Någon som vet hur man tar reda på om felet ligger på sändarsidan eller mottagarsidan.Sv: Problem med åäö
Sv: Problem med åäö
Sv: Problem med åäö
Skickar jag XML documentet som text istället så fungerar det.
dvs
xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xmlhttp.send(SoapDoc.xml)
Förstår inte varför det skulle vara någonskillnad men uppenbarligen är det så.
(Att bara byta content-type eller charset gjorde ingen skillnad)