我試圖創建一個web服務,它獲得一個URL,例如www.domain.co.uk/prices.csv
然後讀取csv文件。這是可能的和如何?理想情況下,沒有下載csv文件?如何從url中讀取csv文件?
回答
你可以使用:
public string GetCSV(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream());
string results = sr.ReadToEnd();
sr.Close();
return results;
}
然後拆分它:
public static void SplitCSV()
{
List<string> splitted = new List<string>();
string fileList = getCSV("http://www.google.com");
string[] tempStr;
tempStr = fileList.Split(',');
foreach (string item in tempStr)
{
if (!string.IsNullOrWhiteSpace(item))
{
splitted.Add(item);
}
}
}
雖然有很多CSV解析器在那裏,我會建議反對你自己。 FileHelpers是一個很好的。
如果你正在將整個文件讀入字符串,並且不需要'WebRequest'的額外靈活性,那麼你可以使用' WebClient.DownloadString'。 – Joey
您必須下載該文件才能閱讀。這不像你的代碼可以以某種方式遠程地獲取內容而不用提取它們。
但是,如果你的意思是不需要將它保存到文件中。您可以使用WebClient
類作爲便利通過HTTP獲取資源。特別是你可能想看看DownloadString
method。
// Download the file to a specified path. Using the WebClient class we can download
// files directly from a provided url, like in this case.
System.Net.WebClient client = new WebClient();
client.DownloadFile(url, csvPath);
其中url是您的網站與csv文件和csvPath是你想要的實際文件去。
在您的Web服務中,您可以使用WebClient類來下載文件,像這樣(我沒有進行任何異常處理,沒有使用或關閉/處置調用,只是想給出您可以使用的想法和細化/提高...)
using System.Net;
WebClient webClient = new WebClient();
webClient.DownloadFile("http://www.domain.co.uk/prices.csv");
,那麼你可以做任何你喜歡它,一旦文件內容在服務的執行流程是可用的。
如果您必須將其作爲Web服務調用的返回值返回給客戶端,則可以返回DataSet
或任何其他您喜歡的數據結構。
hmmmm所以如果我想把csv放到一個數據表中,我會做datatable table = webClient – Beginner
WebRequest的文檔有一個使用流的示例。使用流允許您解析文檔,而無需將其存儲的所有內存
Sebastien Lorion's CSV Reader有一個構造函數需要一個Stream。
如果你決定使用這個,你的榜樣將成爲:
void GetCSVFromRemoteUrl(string url)
{
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
using (CsvReader csvReader = new CsvReader(response.GetResponseStream(), true))
{
int fieldCount = csvReader.FieldCount;
string[] headers = csvReader.GetFieldHeaders();
while (csvReader.ReadNextRecord())
{
//Do work with CSV file data here
}
}
}
的ever popular FileHelpers,您還可以直接從流中讀取。
- 1. Java NetworkOnMainThreadException從URL讀取csv文件
- 2. 從csv文件中讀取
- 3. 如何從csv文件讀取數據
- 4. 如何從URL讀取CSV文件到datagridview?
- 5. 如何讀取CSV文件?
- 6. 如何讀取CSV文件?
- 7. 如何讀取csv文件
- 8. 從URL中讀取文件
- 9. 從RAM讀取CSV文件
- 10. 從R讀取csv文件
- 11. PHP讀取從CSV文件
- 12. 從csv文件讀取Python
- 13. Matlab:從.csv文件讀取
- 14. 從CSV文件讀取
- 15. 從Java讀取CSV文件
- 16. 從Java中的URL中讀取CSV文件
- 17. 如何從C程序中讀取.txt文件或.csv文件?
- 18. 如何在Python中讀取CSV文件?
- 19. 如何在android中讀取csv文件?
- 20. 如何讀取CSV文件中的值
- 21. 如何在flex中讀取CSV文件?
- 22. 如何讀取C中的csv文件?
- 23. 從Zip文件中讀取CSV
- 24. Java - 從csv文件中讀取空值
- 25. 從R CSV文件中讀取xts
- 26. 從Python中的CSV文件讀取
- 27. 從文件中讀取CSV數據
- 28. Python腳本從csv文件中讀取
- 29. 從csv文件中讀取Python日期
- 30. 從Java中的.CSV文件讀取
沒有下載CSV文件?你期望如何閱讀它?或者,你的意思是閱讀它的一部分,而不必首先下載整件事情。 –
你想做那個客戶端或服務器端嗎? – miniBill
下載並不意味着你必須將文件保存到磁盤,如果這是你的想法。這就是說,你不能在沒有下載文件的情況下閱讀文件。 – Botz3000