выполнение методов http с использованием приложения Windows в C # - PullRequest
2 голосов
/ 21 июля 2009

Есть много сайтов, которые вызывают скрипт при отправке формы и передают параметры, используя HTTP POST или GET, используя веб-отладчик. Я нашел параметры, которые передаются.Теперь я хочу сделать то же самое через мое приложение для Windows на C #.Как я могу достичь такой функциональности?

В настоящее время я использую классы HttpWebRequest и HttpWebResponse в C #.Но это боль, так как я должен написать явный код для каждой страницы, которую я пытаюсь загрузить и работать.Например, я пытаюсь передать имя пользователя и пароль на страницу php и получить ответ, который отправит cookie и страницу взамен, на основе которой я определяю, вошел ли пользователь в систему или нет.

Это мой класс createreq

 private HttpWebRequest createreq(string url)
        {
            HttpWebRequest temp = (HttpWebRequest)WebRequest.Create(url);
            temp.Method = "POST";
            temp.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 3.5.21022; FDM)";
            temp.KeepAlive = true;
            temp.ContentType = "application/x-www-form-urlencoded";
            temp.CookieContainer = new CookieContainer();
            temp.AllowAutoRedirect = false;
            return temp;
        }

Я на правильном пути?Есть ли лучший способ сделать это?

1 Ответ

6 голосов
/ 21 июля 2009

Вы должны использовать System.Net.WebClient.

Вы можете использовать его, чтобы сделать запрос любым методом и заголовками, которые вам нужны, и получить полученную страницу с простым потоком чтения.

На странице MSDN есть простой пример, но пример кода для его использования может выглядеть следующим образом:

WebClient webclient= new WebClient();

using (StreamReader reader = new StreamReader(webclient.OpenRead("http://www.google.com")))
{
        string result = reader.ReadToEnd();
         // Parse web page here
}
...