Файлы cookie webBrowser и отправка форм - PullRequest
0 голосов
/ 20 января 2012

Я хочу перейти на веб-сайт с помощью предварительно определенных файлов cookie, Добавьте текст к паре input type="text" и отправьте форму, используя кнопку отправки. Я знаю, что это можно сделать, но я не могу найти, как.

Я уже пытался отправить данные POST на страницу, но мне нужно нажать кнопку, чтобы выполнить действие. Вот мой код:

        static String readHtmlPage(string url)
        {

        //setup some variables

        String username = "demo";
        String password = "password";
        String firstname = "John";
        String lastname = "Smith";

        //setup some variables end

        String result = "";
        String strPost = "username=" + username + "&password=" + password + "&firstname=" + firstname + "&lastname=" + lastname;
        StreamWriter myWriter = null;

        HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
        objRequest.Headers["Cookie"] = "sid=0";
        objRequest.Headers["Cookie"] = "username=0";
        objRequest.Method = "POST";
        objRequest.ContentLength = strPost.Length;
        objRequest.ContentType = "application/x-www-form-urlencoded";

        try
        {
            myWriter = new StreamWriter(objRequest.GetRequestStream());
            myWriter.Write(strPost);
        }
        catch (Exception e)
        {
            return e.Message;
        }
        finally
        {
            myWriter.Close();
        }

        HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
        using (StreamReader sr =
           new StreamReader(objResponse.GetResponseStream()))
        {
            result = sr.ReadToEnd();

            // Close and clean up the StreamReader
            sr.Close();
        }
        return result;
    }


    static void Main(string[] args)
    {

        Console.Write(readHtmlPage("http://www.ggogle.com/"));
    }

1 Ответ

0 голосов
/ 20 января 2012

Мое предложение, которое я сделал в прошлом:
- Используйте Fiddler, зайдите на сайт с помощью браузера и заполните форму, как обычно.
- Fiddler запишет запрос / ответ, и вы можете скопировать строку данных поста и заменить любые нужные вам значения и использовать HttpWebRequest / HttpWebResponse для программного выполнения POST и получения ответа.

публикация данных через httpWebRequest

Пример: вот данные поста, которые я перехватил, когда отправил последний комментарий.

comment=When+you+collect+the+recorded+POST+string+you+can+swap+out+the+key+value+pairs+in+there+before+you+make+the+request.+When+the+OnClick+event+fires+it+will+POST+data+to+the+server%2C+this+is+what+you+need+to+recreate+nothing+with+the+javascript.&fkey=62a7d57a52ee7fa723413a2e1dbe7e71

string postData = string.format("comment={0}&fkey={1}", myCommentString, myFKey);

Затем вы можете передать эту строку на URL, с которым был POST, и использовать HttpWebRequest для ее воссоздания.

Вам также необходимо убедиться, что вы используете URL. Кодирование ваших значений в строке сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...