Getting an error when saving a CSV file (datafeed) from a remote server. It works as expected with some datafeeds but flags an error with others.
The code retrieves the remote datafeed and saves it locally as datafeed.csv
Here is the script so far.
Set xhr = Server.CreateObject("MSXML2.ServerXMLHTTP")
xhr.Open "GET", remote_datafeed, False
xhr.Send
IF NOT xhr.Status = 200 THEN
Response.write"Error retrieving remote CSV file"
else
sResponse = split(xhr.responseText, vbcrlf)
set datafeed = fs.CreateTextFile("files/datafeed.csv", true)
For i = 0 to uBound(sResponse)
datafeed.WriteLine sResponse(i)
Next
Response.write "Remote file has successfully been save locally <br>"
datafeed.close
set datafeed = nothing
I somtimes get an error on the following line.
datafeed.WriteLine sResponse(i)
The error im getting is:
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument
After looking throught the remote datafeed, turns out it was to do with utf-8 charset. Changed to the following code solved this issue with utf-8 charset.
Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 2
objStream.Mode = 3
objStream.Open
objStream.Position = 0
objStream.Charset = "UTF-8"
objStream.WriteText xhr.responseText
objStream.SaveToFile "files/datafeed.csv"
objStream.Close
Set objStream = nothing