在 asp 经典中本地保存远程 CSV 文件
Saving remote CSV file locally in asp classic
从远程服务器保存 CSV 文件(数据馈送)时出错。它对某些数据源按预期工作,但对其他数据源会标记错误。
代码检索远程数据馈送并将其在本地保存为 datafeed.csv
这是目前为止的脚本。
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
我有时会在下面这行出错。
datafeed.WriteLine sResponse(i)
我得到的错误是:
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument
查看远程数据源后,发现它与 utf-8 字符集有关。更改为以下代码使用 utf-8 字符集解决了此问题。
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
从远程服务器保存 CSV 文件(数据馈送)时出错。它对某些数据源按预期工作,但对其他数据源会标记错误。
代码检索远程数据馈送并将其在本地保存为 datafeed.csv
这是目前为止的脚本。
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
我有时会在下面这行出错。
datafeed.WriteLine sResponse(i)
我得到的错误是:
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument
查看远程数据源后,发现它与 utf-8 字符集有关。更改为以下代码使用 utf-8 字符集解决了此问题。
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