Avatar
Petr Čech (czubehead):

Ahoj, už delší dobu řeším takovýto problém: mám metodu, která bere jako parametry

string url, Dictionary<string,string> args

Jejím úkolem je poslat formulářová data z toho Dictionary (jakoby název pole, hodnota) na tu url a vytáhnout z toho zdroják+cookies, nebo ty cookies někde uchovat a automaticky je tam přidávat při dalších requestech. Vytvořil jsem tohle:

class Browser
    {
        public HttpWebRequest Request { private set; get; }
        public HttpWebResponse Response { private set; get; }
        public CookieCollection Cookies { private set; get; }
        public string DocText { private set; get; }

        public void Navigate(string url, Dictionary<string, string> args)
        {
            using (WebClient client = new WebClient())
            {
                System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection();
                foreach (KeyValuePair<string, string> k in args)
                    reqparm.Add(k.Key, k.Value);
                byte[] responsebytes = client.UploadValues(url, "POST", reqparm);
                DocText = Encoding.UTF8.GetString(responsebytes);
            }
        }
    }

Problém je, že to nejspíš žádná data neposílá, když to zavolám

Dictionary<string,string> dic=new Dictionary<string,string>();
            dic.Add("email",@"nejakyEmail");
            dic.Add("password", "strasneTajneHeslo");
            Browser b= new Browser();
            b.Navigate("http://www.itnetwork.cz/prihlaseni", dic);
Odpovědět 23.8.2014 11:23
Why so serious? -Joker
Avatar
Petr Čech (czubehead):

Vyřešeno, funguje to, jen nevím, proč to nefungovalo na posílání dat sem o_O

Nahoru Odpovědět 23.8.2014 16:41
Why so serious? -Joker
Avatar
Odpovídá na Petr Čech (czubehead)
Michal Žůrek (misaz):

prosmtě na co tam máš ten public

HttpWebRequest Request { private set; get; }

když ho stejně nepoužiješ? Nejprve se bavíš o requestu, pak o Dictionary (ten s tím však mírně souvisí) a nakonec použiješ WebClient.

Nahoru Odpovědět 23.8.2014 16:59
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Petr Čech (czubehead):

To je jen část kódu a asi 15. verze, ještě uvidím, jestli potřebuju z toho tahat ten request, response a cookies. "request" nemyslím třídu, ale http požadavek.

Nahoru Odpovědět 23.8.2014 17:21
Why so serious? -Joker
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 4 zpráv z 4.