Правильный способ получить данные из потока HttpWebRespose, а затем добавить текст - PullRequest
0 голосов
/ 28 июля 2010

Я пытаюсь получить веб-страницу, добавить текст вверху страницы, после чего отправлю строку. Вот пример структуры того, что я пытаюсь сделать. Это правильный метод, или я делаю большой нет-нет где-то?

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 ]

1 голос
/ 28 июля 2010

Есть ли какая-то особая причина, по которой вам нужно использовать 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>") ...

Немного меньше такого кода.

0 голосов
/ 28 июля 2010

В какой-то момент вы можете захотеть вызвать responsece.Close () и reader. Close ()

...