HTTP POST - mellemrum og linieskift forsvinder
Via et asp-script på egen server skal jeg løbende modtage xml kilde-data fra en ekstern server via http post. Det er angivet at alt indhold er URL encoded.De xml-kilde-data som vi skal bruge ligger i et simpelt form element. Det afsendes således som en besked og IKKE som en fil.
Vi er nået dertil hvor vi kan modtage og få det modtagne gemt i lokale filer på vores egen server, MEN der er problemer med at data forvanskes og bliver ubrugeligt. Alle mellemrum og linieskift forsvinder undervejs fra afsendelsen til vi får gemt lokalt!
Jeg har en formodning om at det er et spørgsmål om encoding, men er ikke sikker. Under alle omstændigheder skal vi gerne kunne bevare alle mellemrum og linieskift.
Herunder et eksempel på de data der afsendes fra ekstern server:
<?xml version="1.0" encoding="UTF-8" ?>
<dbquery version="2.0">
<message id="6712">
Dagens program
<date>2003-04-22</date>
...
</message>
</dbquery>
Når vi har kørt den gennem vores script og får den gemt lokalt (inden den skal høvles ind i databasen) ser den således ud:
<?xmlversion="1.0"encoding="UTF-8"?><dbqueryversion="2.0"><messageid="6712">Dagensprogram<date>2003-04-22</date>...</message></dbquery>
Ganske ubrugeligt...
Er der nogen der har et bud på hvordan man i asp kan sørge for at få data fra http post'en behandlet korrekt så mellemrum og linieskift bevares?
Jeg har prøvet at lege med at tvinge header/content-type ned over behandlingen af data (application/x-www-form-urlencoded) men ved ikke hvordan dette skal sættes i koden så det virker. Den kode der laver filen ser ud som følger:
Folderpath=server.mappath("\") & "/schedules/xml"
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(Folderpath & "\temp.xml")
For Each x In Request.Form
writedata = Request.Form(x)
a.WriteLine(writedata)
Next
a.Close
Set a=nothing
Set fs=nothing
Håber der er kyndige http post-hoveder derude!