从HttpWebRespose流中检索数据的正确方法然后添加文本

时间:2010-07-28 16:15:43

标签: c# httpwebrequest stringbuilder

我正在尝试检索网页,在页面顶部添加一些文本然后我将发送字符串。这是我想要做的一个示例框架。这是正确的方法,还是我在某处做了一个大禁忌?

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.example.com");
var responce = (HttpWebResponse)request.GetResponse();
var responseStream = responce.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string responseString = reader.ReadToEnd();

StringBuilder sb = new StringBuilder(responseString);

var index = sb.ToString().IndexOf("<body>", StringComparison.InvariantCultureIgnoreCase)+"<body>".Length;
sb.Insert(index, "A lot of text will go here.");
Console.WriteLine(sb.ToString());

2 个答案:

答案 0 :(得分:1)

您是否有任何特殊原因需要使用HttpWebRequest / Response?您也可以像这样使用WebClient类来实现相同的结果:

WebClient web_client = new WebClient();
byte[] result = web_client.DownloadData("http://blah...");
string html = System.Text.Encoding.Default.GetString(result);
html.IndexOf("<body>") ...

这样的代码也少了一点。

答案 1 :(得分:0)

在某些时候,您可能想要调用response.Close()和reader.Close()