Autor Beitrag
Montana
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 11.06.13 13:38 
Hi,

ich bin neu hier hab aber auch gleich eine Fraqe. Und zwar lerne ich gerade in bisschen C# und wollte nun mich per Http auf eine Webseite einloggen. Nun möchte ich dies auch tun, nur ist glaube ich irgend was mit den Cookies. Ich bekomme keine Antwort vom Server. Ich habe mir dafür in einer Klasse zwei Funktionen erstellt. Eine für Daten Posten wie z.B das Loginpaket mit den Logindaten. Und eins um auf eine Seite zu navigieren. Was hab ich falsch gemacht?

Und zwar:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
Post loginPost = new Post();

loginPost.pPost("http://www.howrse.de/site/doLogIn""&login=***&password=***&isBoxStyle=");

loginPost.webRPost("http://www.howrse.de/jeu/?identification=1""");


Klasse:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
     class Post
     {
         public static CookieContainer loginCookie = new CookieContainer();

         public string pPost(string url, string s_Post)
         {           
             HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(url);
             // CookieContainer tempcookie = new CookieContainer();
             Request.Method = "POST";
             Request.ContentType = "application/x-www-form-urlencoded";
             Request.UserAgent = " Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0";
             Request.Referer = "http://www.howrse.de/";
                
             Request.CookieContainer = loginCookie;
           
             // string Post = s_Post;
             byte[] byteArray = Encoding.UTF8.GetBytes(s_Post);
             Request.ContentLength = byteArray.Length;
             Stream DataStream = Request.GetRequestStream();
             DataStream.Write(byteArray, 0, byteArray.Length);
             DataStream.Close();

             HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
             DataStream = Response.GetResponseStream();
             StreamReader reader = new StreamReader(DataStream);
             string ServerResponse = reader.ReadToEnd();
             reader.Close();
             DataStream.Close();
             Response.Close();


             foreach (Cookie cook in Response.Cookies)
             {

                 MessageBox.Show(cook.Value);
                 MessageBox.Show(cook.Expired.ToString(), "expired");
             }

             File.WriteAllText("bla.html", ServerResponse);
             MessageBox.Show(ServerResponse.ToString());

            return ServerResponse.ToString();
       }  //ENDE pPost Funktion

       public string webRPost(string url, string s_Post)
       {
           HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(url);
           Request.Method = "POST";
           Request.ContentType = "application/x-www-form-urlencoded";
           Request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)";
           Request.CookieContainer = loginCookie;

           byte[] byteArray = Encoding.UTF8.GetBytes("");
           Request.ContentLength = byteArray.Length;
           Stream DataStream = Request.GetRequestStream();
           DataStream.Write(byteArray, 0, byteArray.Length);
           DataStream.Close();

           HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
           DataStream = Response.GetResponseStream();
           StreamReader reader = new StreamReader(DataStream);
           string ServerResponse = reader.ReadToEnd();
           reader.Close();
           DataStream.Close();
           Response.Close();


           foreach (Cookie cook in Response.Cookies)
           {

               MessageBox.Show(cook.Value, "value");
               MessageBox.Show(cook.Expired.ToString(), "expired");
           }

           MessageBox.Show(ServerResponse.ToString());

           File.WriteAllText("bla2.html", ServerResponse.ToString());

           return ServerResponse.ToString();
       }//ENDE webRPost

    } // ENDE class Post


Moderiert von user profile iconTh69: PHP- durch C#-Tags ersetzt
Moderiert von user profile iconTh69: Beitragsformatierung überarbeitet: unnötige Leerzeilen entfernt
Moderiert von user profile iconChristian S.: Topic aus Sonstiges (.NET) verschoben am Di 11.06.2013 um 20:22
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2261

Win 10
C# (VS 2019)
BeitragVerfasst: Di 11.06.13 20:27 
Hallo und :welcome:!

Ich bin mir gerade nicht sicher, welche Streams man wo schließen darf :gruebel:

Ich hatte hier mal einen Login per HttpWebRequest gepostet, der zumindest bei mir funktioniert hat. Geht der bei Dir und der entsprechenden Seite?

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Montana Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 11.06.13 20:48 
user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Hallo und :welcome:!

Ich bin mir gerade nicht sicher, welche Streams man wo schließen darf :gruebel:

Ich hatte hier mal einen Login per HttpWebRequest gepostet, der zumindest bei mir funktioniert hat. Geht der bei Dir und der entsprechenden Seite?

Grüße
Christian


Hi,

nee leider funktioniert der auch nicht. Bekomem das gleich zurück wie mit meiner funktion:{"redirection":"http:\/\/www.howrse.de\/jeu\/?identification=1"}
Und wenn ich weiter Navigiere ne leere Seite.