Entwickler-Ecke

ASP.NET und Web - Post- und Getdaten über C# an Webseite schicken


zero_x - Do 27.03.08 16:47
Titel: Post- und Getdaten über C# an Webseite schicken
Hallo liebe Community,

wie ist es möglich an eine Webseite über die Postmethod Befehle zu schicken? :gruebel:



MfG,
Zero_x :)


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Do 27.03.2008 um 15:51


Christian S. - Do 27.03.08 16:56

Schau Dir mal die HttpWebRequest-Klasse an. In der Hilfe zur ContentType-Eigenschaft dieser Klasse gibt es auch ein Code-Beispiel für das Senden von Post-Daten.


zero_x - Fr 28.03.08 16:50

Hallo Christian S.,

vielen Dank, aber ein kleines Problem habe ich noch. Ich möchte an RapidShare als Free-User einen Download starten, aber da kommt schon das zweite Problem. Wie klappt das Posten mit der Serverauswahl, Captcha(Sicherheitsbild) und den "Download-Button"?

Der erste Teil mit den Posten an den Free-Button ist kein Problem. Ich verwende folgenden Code:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
        private void button1_Click(object sender, EventArgs e)
        {
            // Von MSDN Kopiert:
            WebRequest request = WebRequest.Create("http://rs154.rapidshare.com/files/102494075/Wasserlilien.jpg"); // Link
            request.Method = "POST";
            string postData = this.textBox1.Text;
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            this.textBox2.Text = ((HttpWebResponse)response).StatusDescription; // OK ?
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            this.richTextBox1.Text = responseFromServer; // Quelltext in der richTextBox1 anzeigen
            reader.Close();
            dataStream.Close();
            response.Close();
        }

Wenn ich auf der WinForm den Button1 klicke wird mir in der TextBox1 der Quelltext von RapidShare angezeigt, wo auch die Serverauswahl möglich ist ect. Okay, das funktioniert wunderbar.



Nun der zweite Teil mit den Senden des Captchas, Serverauswahl und den Download-Button:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
        private void button2_Click(object sender, EventArgs e)
        {
            WebRequest request = WebRequest.Create("http://rs154.rapidshare.com/files/102494075/Wasserlilien.jpg"); // Link
            request.Method = "POST";
            string postData = this.textBox3.Text; // Inhalt aus der textBox3 posten
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            this.richTextBox1.Text = responseFromServer; // Der gepostete Quelltext in der richTextBox1 anzeigen
            reader.Close();
            dataStream.Close();
            response.Close();
            // Postcode: mirror=on&accesscode=XXXX&actionstring=Download+via+Level%283%29
        }


Nun gebe ich z.B.
Zitat:
mirror=on&accesscode=munk&actionstring=Download+via+Level%283%29
in die textBox3 und klicke auf den Button2, aber der Downlod startet nicht :(


Meine Frage nun: Wie kann ich herausfinden:



Ich wäre sehr froh auf eine Antwort von euch! ;)


MfG,
Zero_x


P.S: Nicht Rapidshare.de sondern Rapidshare.com ;)