我們有一個自動生成並放入Web服務器的文本文件。任務是逐行讀取文件並將記錄插入到數據庫中。下面的代碼是在C#:使用WebRequest和WebClient時的結果不同
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
StreamReader r = new StreamReader(response.GetResponseStream());
while (r.Peek() > -1)
{
string s = r.ReadLine().Trim();
//insert string into a db.
}
當我做到這一點我不斷得到其範圍從9000整個文件 - 10000線。在另一方面,當我使用以下有時我得到一個截斷的文件(減去行)
WebClient client = new WebClient();
StreamReader r = new StreamReader(client.OpenRead(url));
while (r.Peek() > -1)
{
string s = r.ReadLine().Trim();
//insert string into a db.
}
任何人都可以解釋的區別?爲什麼結果會不一樣?我的印象是WebClient只是HttpWebRequest的包裝。
WebClient OpenRead方法是WebRequest的一個包裝。實際上,它看起來與您發佈的WebRequest代碼幾乎完全相同。我在ILSpy中檢查了WebCLient以確認。我懷疑問題在於其他地方。你能調試並確認你正在閱讀的行是你期望的嗎? – rtalbot