Durchführen von http-Methoden mithilfe der Windows-Anwendung in c #

Es gibt viele Sites, die ein Skript beim Absenden des Formulars aufrufen und Parameter über HTTP POST oder GET übergeben. Ich habe festgestellt, dass die Parameter über einen Web-Debugger übergeben werden. Jetzt möchte ich das gleiche über meine Windows-Anwendung in C # tun. Wie kann ich eine solche Funktionalität erreichen?

Ich verwende derzeit die Klassen HttpWebRequest und HttpWebResponse in C #. Aber es ist ein Schmerz, da ich expliziten Code für jede Seite schreiben muss, die ich zu laden und zu arbeiten versuche. Zum Beispiel versuche ich, Benutzernamen und Passwort an eine PHP-Seite zu übergeben und nehme die Antwort, die ein Cookie und eine Seite zurücksendet, basierend darauf, ob der Benutzer angemeldet ist oder nicht.

HttpWebRequest loginreq = createreq("http://www.indyarocks.com/mobile/index.php");
                String logintext = "username=" + TxtUsrname.Text + "&pass=" + TxtPasswd.Password + "&button.x=0&button.y=0";
                loginreq.ContentLength = logintext.Length;
                StreamWriter writerequest = new StreamWriter(loginreq.GetRequestStream());
                writerequest.Write(logintext);
                writerequest.Close();
                HttpWebResponse getloginpageresponse = (HttpWebResponse)loginreq.GetResponse();
                cookie = getloginpageresponse.Cookies[0];
                BinaryFormatter bf1 = new BinaryFormatter();
                Stream f1 = new FileStream("E:\\cookie.dat", FileMode.OpenOrCreate);
                bf1.Serialize(f1, cookie);
                f1.Close();

                string nexturl = getloginpageresponse.Headers[HttpResponseHeader.Location];
                StreamReader readresponse = new StreamReader(getloginpageresponse.GetResponseStream());
                if (nexturl == "p_mprofile.php")
                {
                    MessageBox.Show("Login Successful");
                    GrpMsg.IsEnabled = true;
                }
                else if (nexturl == "index.php?msg=1")
                {
                    MessageBox.Show("Invalid Credentials Login again");
                }

Dies ist meine Kreativklasse

 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;
        }

Bin ich auf dem richtigen Weg? Gibt es einen besseren Weg, es zu tun?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage