Pobieranie źródła strony

0

Tworze sobie funkcje do pobierania źródła strony, a wygląda ona tak:

void GS()
        {
            onpc pc = new onpc(OnProgressChange);
            onpl pl = new onpl(OnPageLoad);
            onerr pe = new onerr(OnPageError);

            pc(0, 1);

            Regex r = new Regex("(http:..){0,1}(?<domena>.*(pl|com|org))//{0,1}(?<adres>.*){0,1}");
            Match m = r.Match(adres);
            string request = "GET /" + m.Groups["adres"].Value + " HTTP/1.1\r\nHost: " + m.Groups["domena"].Value + "\r\nUser-Agent: myBrowser 0.9 Beta\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: pl,en-us;q=0.7,en;q=0.3\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7\r\nKeep-Alive: 115\r\nConnection: keep-alive\r\n\r\n";
                //Host: " + m.Groups["domena"].Value + "\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: pl,en-us;q=0.7,en;q=0.3\r\n\r\n";
            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            Byte[] requestBytes = Encoding.UTF8.GetBytes(request);
            int bytes = 0;
            string page = "";
            int max = 0;
            int pos = 0;
            Byte[] bytesReceived = new Byte[256];
            try
            {
                s.Connect(m.Groups["domena"].Value, port);
                //max = s.Available;
                if (s.Connected)
                {
                    s.Send(requestBytes);
                    
                    do
                    {
                        //if (max < s.Available) { max = s.Available+1; }
                        bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
                        if (max < s.Available) { max = s.Available; pos = 0; }
                        pos += bytes;
                        page = page + Encoding.UTF8.GetString(bytesReceived, 0, bytes);
                        pc(pos, max);
                    }
                    while (bytes > 0);
                    s.Close();
                    Source = page;
                    pc(1, 1);
                    pl();
                }
            }
            catch (Exception ex)
            {
                pe(ex.Message);
            }
        }

I moje pytanie jest takie:
Dlaczego gdy wczytuje stronę np. wp.pl to strona normalnie się wczytuje i wyświetla źródło, a gdy próbuje wczytać google.pl to źródło pobierze ale wyświetli je z opóźnieniem?

PS: Sorry za duży header ale próbowałem przekopiować tak jak leci zapytanie z firefoxa ale nic to nie dało.

0
WebClient client = new WebClient();
Byte[] pageData = client.DownloadData(strona);
string pageHtml = Encoding.ASCII.GetString(pageData);
Console.WriteLine(pageHtml);
WebClient client = new WebClient ();
string reply = client.DownloadString (strona);
Console.WriteLine (reply);
0

to nic nie da nie wczytuje się np. strona filmweb.pl jak by to ruszyło to bym zrobił na HTTPRequest ale nie działa wiec pozostaje tylko socket tylko muszę rozwiązać ten problem z opóźnieniem.

0

w ktorym miejscu nastepuje opoznienie sprawdziels?
w czym wyswietlasz zrodlo strony? bo w kodzie nie widze zadnej instrukcji realizujace to
co do filmweb.pl byl juz watek kilka tyg. temu o tym, pierwsza strona to jakis splash z reklama, w tedy wystawia sie ciasteczko, kolejne przeladowanie strony (jak juz masz ciasteczko) laduje faktyczna strone z content'em

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