我们有一个自动生成并放入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