Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Adam Gajdečka:17.9.2018 18:50

Vůbec nevím, jak to udělat. Google nepomohl.

Zkusil jsem: toto nejde, nechová se to jako prohlížeč

public bool Get(string uri)
       {
           try
           {
               HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
               request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

               using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
               using (Stream stream = response.GetResponseStream())
               using (StreamReader reader = new StreamReader(stream))
               {
                   // return reader.ReadToEnd();
               }
               return true;
           }
           catch (Exception)
           {

               return true;
           }

       }

V různých diskuzích na netu jsou jen řešení pro Windows Desktop, kdy se použije komponenta WebBrowser

Chci docílit: Potřebuji vytvořit GET request na určitou webovou adresu. Potřebuji na té stránce otestovat, zda je tam vložený správně JS kód. Takže mi stačí udělat GET request, ale musí se spustit i JS kódy.

Problém je, že klasicky JS spouští prohlížeč. Nejde to udělat klasickým GET requestem. Potřebuji to napsat pro ASP. NET MVC, verze 4.6 .NET FRAMEWORK

 
Odpovědět
17.9.2018 18:50
Avatar
Odpovídá na Adam Gajdečka
don.jarducius:17.9.2018 20:26

Ahoj,a o ti brání v použití WebBrowser?
Zkus tohle... je to úryvek kódu
Používám to v multithread aplikaci na generování obrázků z html.

var docKomplet = false;
            var th = new Thread(() =>
            {
                WebBrowser wb1 = new WebBrowser();
                var hasPrinted = false;
                wb1.DocumentCompleted += (sender, e) =>
                {
                        // logika po načtení stránky
                        docKomplet = true;
                    wb1.Dispose();
                    Application.ExitThread();
                };
                wb1.Size = new System.Drawing.Size(1376, 786);
                wb1.ScriptErrorsSuppressed = true;
                wb1.DocumentText = Content;
                Application.Run();
            });
            th.SetApartmentState(ApartmentState.STA);
            th.Start();
            // Cekani na konec
            while (!docKomplet)
                Thread.Sleep(50);
Nahoru Odpovědět
17.9.2018 20:26
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Odpovídá na don.jarducius
Adam Gajdečka:17.9.2018 23:04

a jak to mám udělat, když je to webová aplikace?

 
Nahoru Odpovědět
17.9.2018 23:04
Avatar
David Klouček:18.9.2018 8:26

Firefox a Chrome mají "headless mode", kdy jednoduše spustíš prohlížeč přes konzoli bez GUI a necháš si vrátit výstup.
https://developer.mozilla.org/…eadless_mode
https://developers.google.com/…dless-chrome

Editováno 18.9.2018 8:28
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
18.9.2018 8:26
Avatar
Odpovídá na Adam Gajdečka
don.jarducius:18.9.2018 8:33

Je to standardní .NET aplikace jako každá jiná, máš k dispozici všechny knihovny. Přidej si do referencí System.Window­s.Forms a bude ti to fungovat.
Pokud by to byl .NET Core pak by bylo řešení jiné.

Nahoru Odpovědět
18.9.2018 8:33
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Odpovídá na David Klouček
Adam Gajdečka:18.9.2018 8:54

díky. Podívám se na to

 
Nahoru Odpovědět
18.9.2018 8:54
Avatar
Adam Gajdečka:18.9.2018 10:26

Řešení

var chromeOptions = new ChromeOptions();
               chromeOptions.AddArguments("headless");

               using (var browser = new ChromeDriver(chromeOptions))
               {
                   browser.Url = "moje url";
                   browser.Navigate();
               }
 
Nahoru Odpovědět
18.9.2018 10:26
Avatar
Odpovídá na Adam Gajdečka
don.jarducius:18.9.2018 12:54

Jen varování...
až to nahraješ na server, bude tam taky chrome? Jsi si jistý, že to bude fungovat i za 10 verzí Chromu?
S použitím Google aplikací bych byl velmi opatrný, mívají schopnost měnit funkčnost... zaděláš si tím na možné problémy...

Nahoru Odpovědět
18.9.2018 12:54
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Odpovídá na don.jarducius
Adam Gajdečka:18.9.2018 13:07

chrome jsem nainstaloval na server. Budoucnost ukáže, zda to bude dlouhodobě fungovat. Je to naštěstí jen "preventivní test", případně mi přijde upozornění emailem :-)

 
Nahoru Odpovědět
18.9.2018 13:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.