Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > C# и интернет


Автор: Pury 17.1.2008, 00:06
Заранее извиняюсь, если поместил тему не в тот раздел.
Вопрос у меня такой: есть какой-нибудь простой способ просмотра html, php и других интернет страниц через c#?
То есть грубо говоря мне нужно знать содержание этих страниц как если бы я зашел на них через браузер и выбрал бы просмотр кода.
заранее спасибо!

Автор: Legolas 17.1.2008, 00:50
Код

WebBrowser browser = new WebBrowser();
browser.Navigate("www.forum.vingrad.ru");
string str = browser.DocumentText;


ты это имеешь ввиду?

Автор: RWander 17.1.2008, 21:35
Pury, если нужен html-код, то узай HttpWebRequest и HttpWebResponse

Код

using System.Net;

......
HttpWebRequest myHttpWebRequest =   (HttpWebRequest) HttpWebRequest.Create("http://yandex.ru");
HttpWebResponse myHttpWebResponse =   (HttpWebResponse)myHttpWebRequest.GetResponse();

//вывод содержимого ввиде html-кода на консоль
StreamReader myStreamReader = 
    new StreamReader( myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));
Console.WriteLine(myStreamReader.ReadToEnd());
.....

Автор: Pury 17.1.2008, 22:03
Спасибо откликнувшимся! Но оба варианта почему то не работают! 
Первый вариант(вариант Леголаса) всегда выводит пустую строку.
Второй же(вариант РВондера) зависает на строке 
Код

HttpWebResponse myHttpWebResponse =   (HttpWebResponse)myHttpWebRequest.GetResponse();

Я менял Uri но ничего не помогает...

Автор: source777 17.1.2008, 23:14
Цитата

Я менял Uri но ничего не помогает...
А на такой - http://forum.vingrad.ru, пробовал?

Автор: Pury 17.1.2008, 23:19
Цитата(source777 @ 17.1.2008,  23:14)
Цитата

Я менял Uri но ничего не помогает...
А на такой - http://forum.vingrad.ru, пробовал?

Цитата
Цитата

Я менял Uri но ничего не помогает...
А на такой - http://forum.vingrad.ru, пробовал?

Ваще то пробовал... А вообще как то не понимаю чем эта страница хороша...

Автор: source777 17.1.2008, 23:21
Цитата

Ваще то пробовал... А вообще как то не понимаю чем эта страница хороша...
просто как пример, я имел в виду не конкретно страницу, а факт указания протокола...

Автор: Pury 17.1.2008, 23:23
А если не писать http то он еще на стадии компиляции ругается.

Автор: Legolas 18.1.2008, 01:03
Pury, всё очень просто - страница не успевает загрузиться. разведи по разным контролам (например кнопкам). когда в ьраузере появляется страничка жми кнопку и считывай ее в строку.

Автор: RWander 18.1.2008, 11:51
Цитата(Pury @  18.1.2008,  00:03 Найти цитируемый пост)

Второй же(вариант РВондера) зависает на строке код HttpWebResponse myHttpWebResponse =   (HttpWebResponse)myHttpWebRequest.GetResponse();
менял Uri но ничего не помогает..

У меня все отлично работает=)

Автор: Legolas 20.1.2008, 01:31
you can also do it like that:

Код

using System;
using System.Net;
using System.IO;

class internet
{
public static void Main()
{
WebRequest r = WebRequest.Create("http://www.yandex.ru");
WebResponse re = r.GetResponse();
Stream s = re.GetResponseStream();
Byte[] a = new Byte[51200];
int b = s.Read(a, 0, 51200);
Console.WriteLine(b);
Console.Write(System.Text.Encoding.ASCII.GetString(a, 0, b));
}     
}


Автор: Experimenter 20.1.2008, 21:45
Pury, может у тебя прокси используется?

Автор: Pury 22.1.2008, 21:02
Код
WebBrowser wBr = new WebBrowser();
            wBr.Navigate("http://ya.ru");
            while (wBr.ReadyState != WebBrowserReadyState.Complete)
            { 
                Application.DoEvents();
            };



Вобщем всем спасибо, у меня заработало вот с таким кодом.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)