TcpClient czy Socket - której klasy użyć do klienta HTTP?

0

Witam
Której klasy lepiej użyć do stworzenie Clienta do obsługi http? Zrobiłem sobie 2 przykłady, wyglądają i działają podobnie. I od razu drugie pytanie: jak odczytać dane ze strumienia:

string strPage = string.Empty;
            using (TcpClient tcpClient = new TcpClient("www.wp.pl", 80))
            {
                using (NetworkStream networkStream = tcpClient.GetStream())
                {
                    using (StreamReader streamReader = new StreamReader(networkStream))
                    {
                        using (StreamWriter streamWriter = new StreamWriter(networkStream))
                        {
                            streamWriter.WriteLine("GET / HTTP/1.1");
                            streamWriter.WriteLine("Host: wp.pl");

                            streamWriter.Flush();

                            strPage = streamReader.ReadLine();
                        }
                    }

W jednym przykładzie jest to zrobione za pomocą ReadLine, jednak u mnie przy tej linijce program się zawiesza.

1
 
streamWriter.WriteLine("GET / HTTP/1.1");
streamWriter.WriteLine("Host: wp.pl");

Zdaje sie, ze naglowki powinny konczyc sie pusta linia (wlasciwie to znakami \r\n) wiec dopisz jeszcze jedno "WriteLine", czyli:

 
streamWriter.WriteLine("GET / HTTP/1.1");
streamWriter.WriteLine("Host: wp.pl");
streamWriter.WriteLine();

Wlasciwie to lepiej byloby uzyc klasy WebRequest wg. przykladu na stronie: http://support.microsoft.com/kb/307023/pl

0

ok, już działa, dzięki. Mam teraz kolejny problem: jak zapisać kod strony do stringa?

strPage = streamReader.ReadToEnd();

Tak jak teraz jest strasznie długo to trwa.</del>
//Już sobie poradziłem :)

Co do WebRequest: już zrobiłem sobie klasę korzystającą z WebRequest, teraz chce zrobić na gniazdach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1