如何从 https URL 下载 CSV 文件到字符串?
How do I download a CSV file to a string from an https URL?
当我从本地文件读取所有文本时,我在此处列出的代码有效。我需要做的是将路径 "C:\LocalFiles\myFile.csv" 替换为“https://mySite.blah/myFile.csv”。
我尝试了几种方法,但似乎无法将 csv 文件加载到字符串变量中。如果我能做到这一点,那么代码对我来说就可以了。
var csv = System.IO.File.ReadAllText(@"C:\LocalFiles\myFile.csv");
StringBuilder sb = new StringBuilder();
using (var p = ChoCSVReader.LoadText(csv).WithFirstLineHeader())
{
p.Configuration.NullValue = null;
if (p.Configuration.CSVRecordFieldConfigurations.IsNullOrEmpty())
{
p.Configuration.NullValue = null;
}
// ChoIgnoreFieldValueMode.DBNull = ChoIgnoreFieldValueMode.Empty();
using (var w = new ChoJSONWriter(sb))
w.Write(p);
}
string fullJson = sb.ToString();
如果我只是替换路径,我会收到一条错误消息,指出路径无效。
您需要使用网络请求获取字符串:
string urlAddress = "https://mySite.blah/myFile.csv";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = null;
if (response.CharacterSet == null)
{
readStream = new StreamReader(receiveStream);
}
else
{
readStream = new StreamReader(receiveStream,
Encoding.GetEncoding(response.CharacterSet));
}
string data = readStream.ReadToEnd();
response.Close();
readStream.Close();
}
或使用网络客户端:
WebClient wc = new WebClient();
string data = wc.DownloadString("https://mySite.blah/myFile.csv");
然后将 data
传递到您的 reader 而不是使用 System.IO.File.ReadAllText(@"C:\LocalFiles\myFile.csv");
以上两个示例均假定文件在 url 时可公开访问,无需身份验证或特定 header 值。
替换此行
var csv = System.IO.File.ReadAllText(@"C:\LocalFiles\myFile.csv");
和
string result = client.GetStringAsync("https://mySite.blah/myFile.csv").Result;
或
var textFromFile = (new WebClient()).DownloadString("https://mySite.blah/myFile.csv");
还有许多其他方法可以做到这一点。只是 google 它。
当我从本地文件读取所有文本时,我在此处列出的代码有效。我需要做的是将路径 "C:\LocalFiles\myFile.csv" 替换为“https://mySite.blah/myFile.csv”。
我尝试了几种方法,但似乎无法将 csv 文件加载到字符串变量中。如果我能做到这一点,那么代码对我来说就可以了。
var csv = System.IO.File.ReadAllText(@"C:\LocalFiles\myFile.csv");
StringBuilder sb = new StringBuilder();
using (var p = ChoCSVReader.LoadText(csv).WithFirstLineHeader())
{
p.Configuration.NullValue = null;
if (p.Configuration.CSVRecordFieldConfigurations.IsNullOrEmpty())
{
p.Configuration.NullValue = null;
}
// ChoIgnoreFieldValueMode.DBNull = ChoIgnoreFieldValueMode.Empty();
using (var w = new ChoJSONWriter(sb))
w.Write(p);
}
string fullJson = sb.ToString();
如果我只是替换路径,我会收到一条错误消息,指出路径无效。
您需要使用网络请求获取字符串:
string urlAddress = "https://mySite.blah/myFile.csv";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = null;
if (response.CharacterSet == null)
{
readStream = new StreamReader(receiveStream);
}
else
{
readStream = new StreamReader(receiveStream,
Encoding.GetEncoding(response.CharacterSet));
}
string data = readStream.ReadToEnd();
response.Close();
readStream.Close();
}
或使用网络客户端:
WebClient wc = new WebClient();
string data = wc.DownloadString("https://mySite.blah/myFile.csv");
然后将 data
传递到您的 reader 而不是使用 System.IO.File.ReadAllText(@"C:\LocalFiles\myFile.csv");
以上两个示例均假定文件在 url 时可公开访问,无需身份验证或特定 header 值。
替换此行
var csv = System.IO.File.ReadAllText(@"C:\LocalFiles\myFile.csv");
和
string result = client.GetStringAsync("https://mySite.blah/myFile.csv").Result;
或
var textFromFile = (new WebClient()).DownloadString("https://mySite.blah/myFile.csv");
还有许多其他方法可以做到这一点。只是 google 它。