Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 11:28

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



HttpWebRequest Login

Discussion on HttpWebRequest Login within the .NET Languages forum part of the Coders Den category.

Reply
 
Old 10/14/2012, 22:56   #16
 
elite*gold: 24
Join Date: Apr 2010
Posts: 35,826
Received Thanks: 6,344
Quote:
Originally Posted by Kraizy​ View Post
Sicher, dass du deinen Code nicht einfach irgendwo rauskopiert hast..?
Naja, Debug.Print(quelltext), oder du setzt nen Haltepunkt und kopierst den Wert deiner Variable selber raus.
Jop, habe vorher nur nie mit Visual Studio gearbeitet, da ich aus Java komme und die Syntax ziemlich ähnlich ist, konnte ich da recht schnell einsteigen.
Das ein oder andere muss ich zwar auf MSDN nachschlagen, aber sonst keine Probleme. Meine Frage war lediglich, ob der Quelltext vom Debugger selbst kommt. Wie ich ihn auslesen kann, ist mir schon bewusst, dennoch danke
anonymous-f4h279 is offline  
Old 10/15/2012, 12:13   #17


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Code:
public class Http
    {
        public string PostRequest(string host, string path, string spostPacket)
        {
            var cookies = Cookies.GetInstance();
            var cookieContainer = new CookieContainer();
            
            byte[] postPacket = Encoding.UTF8.GetBytes(spostPacket);

            var request = (HttpWebRequest) HttpWebRequest.Create("http://" + host + path);
            request.CookieContainer = cookieContainer;
            request.Method = "POST";
            request.Host = host;
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1";
            request.ConnectionGroupName = "keep-alive";

            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = postPacket.Length;
            request.Proxy = new WebProxy();
            foreach (var cookie in cookies.GetCookies())
            {
                request.CookieContainer.Add(cookie);
            }
            
            
            

            var dataStream = request.GetRequestStream();


            dataStream.Write(postPacket, 0, postPacket.Length);
            var response = (HttpWebResponse)request.GetResponse();
            var responseType = response.ContentType;
            dataStream = response.GetResponseStream();
            var responseStream = new StreamReader(dataStream);
            var html = responseStream.ReadToEnd();
            if(response.Cookies.Count != 0)
            {
                List<Cookie> retCookie = new List<Cookie>();
                for (int i = 0; i < response.Cookies.Count; i++)
                {
                    retCookie.Add(response.Cookies[i]);
                }
                cookies.SetCookies(retCookie);
            }
           dataStream.Close();
           return html;
        }




        public string GetRequest(string host, string path = "")
        {
            var cookies = Cookies.GetInstance();
            var cookieContainer = new CookieContainer();

            var request = (HttpWebRequest)WebRequest.Create("http://" + host + path);
            request.CookieContainer = cookieContainer;
            request.Method = "GET";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ConnectionGroupName = "keep-alive";
            request.Host = host;
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1";
            request.Proxy = new WebProxy();
            
            foreach (var cookie in cookies.GetCookies())
            {
                request.CookieContainer.Add(cookie);
            }

            var response = (HttpWebResponse)request.GetResponse();
            
            var dataStream = response.GetResponseStream();
            var responseStream = new StreamReader(dataStream);
            var html = responseStream.ReadToEnd();
            if (response.Cookies.Count != 0)
            {
                List<Cookie> retCookie = new List<Cookie>();
                for (int i = 0; i < response.Cookies.Count; i++)
                {
                    retCookie.Add(response.Cookies[i]);
                }
                cookies.SetCookies(retCookie);
            }
            dataStream.Close();
            return html;
        }
    }

Code:
 public class Cookies
    {
        private List<Cookie> _cookies = new List<Cookie>();
        private static Cookies _cookiesInstance;


        public static Cookies GetInstance()
        {
           if (_cookiesInstance != null)
                return _cookiesInstance;
            _cookiesInstance = new Cookies();
           return _cookiesInstance;
        }

        private Cookies(){}

        public List<Cookie> GetCookies()
        {
            return _cookies;
        }
        public void SetCookies(List<Cookie> cookies )
        {
            _cookies = cookies;
        }
    }





    public class CookieEntity
    {
        public Cookie cookie { get; set; }
    }
Das sind zwei alte Methoden von mir, zwar nicht perfekt nach den Normen gecoded, aber da kannst du über die Cookies immer checken, ob dein Login erfolgreich war. Außerdem werden die Cookies immer automatische gespeichert und wieder neu mitgegeben.
Ein Login bei epvp würde dann so aussehen:


Code:
var httpRequest = new Http();
            var html = string.Empty;
            html = httpRequest.GetRequest(@"www.elitepvpers.com");
            html = httpRequest.PostRequest(@"www.elitepvpers.com", "/forum/login.php?do=login", @"vb_login_username=" + usrName + @"&vb_login_password=&cookieuser=1&s=&securitytoken=" + "guest" + "&do=login&vb_login_md5password="+ GetMd5Hash(password).ToLower() +"&vb_login_md5password_utf=" + GetMd5Hash(password).ToLower());

Zum Login prüfen:

Code:
            Cookies.GetInstance().GetCookies().Contains("COOKIEDASEXISTIERENMUSSWENNDUEINGELOOGTBIST")
Lawliet is offline  
Thanks
1 User
Old 10/16/2012, 09:25   #18
 
Naworia's Avatar
 
elite*gold: 12
Join Date: Aug 2011
Posts: 455
Received Thanks: 418
You need to save cookies to use in other pages.
Naworia is offline  
Thanks
1 User
Old 10/16/2012, 12:20   #19
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
I guess the problem is already solved..
Kraizy​ is offline  
Thanks
1 User
Old 10/17/2012, 20:41   #20
 
elite*gold: 14
The Black Market: 108/0/1
Join Date: May 2011
Posts: 2,671
Received Thanks: 818
Falls, es noch benötigt wird, der Konstruktor meiner Klasse:

Code:
public Elitepvpers(string username, string password)
        {
            Request request = new Request();
            string serverResponse = null;

            username = HttpUtility.UrlEncode(username);

            request.Send("http://elitepvpers.com/forum", ref cookies);
            serverResponse = request.Send("http://www.elitepvpers.com/forum/login.php?do=login", "vb_login_username=" + username + "&vb_login_password=" + password + "&cookieuser=1&s=&securitytoken=guest&do=login&vb_login_md5password=&vb_login_md5password_utf=", ref cookies);

            if (!serverResponse.Contains("Thank you for logging in")) loggedIn = false;
            else loggedIn = true;
        }
vwap is offline  
Old 10/18/2012, 13:28   #21
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
@Headpuster funktionieren bei dir Logins, welche mit Usernamen durchgeführt werden, die zb ein ♥ im Namen enthalten? Bei mir nicht, und ich bin zu blöd das richtige CharSet zu finden
Kraizy​ is offline  
Old 10/18/2012, 14:09   #22



 
Shawak's Avatar
 
elite*gold: 0
The Black Market: 259/0/0
Join Date: Apr 2010
Posts: 10,289
Received Thanks: 3,613
Schon mit dem Charset von Elitepvpers versucht (charset=ISO-8859-1)?
Shawak is offline  
Thanks
1 User
Old 10/18/2012, 14:43   #23
 
elite*gold: 14
The Black Market: 108/0/1
Join Date: May 2011
Posts: 2,671
Received Thanks: 818
Code:
username = HttpUtility.UrlEncode(username);
& charset=ISO-8859-1

That's the Trick.
vwap is offline  
Thanks
1 User
Old 10/18/2012, 15:48   #24
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
Hm komisch..hab ich gestern schon probiert, aber angeblich Invalid username/password..naja jz gehts
Kraizy​ is offline  
Reply


Similar Threads Similar Threads
c# httpwebrequest Travian
12/07/2017 - .NET Languages - 2 Replies
Gude Leute ich hätt da mal ein anliegen ich will mir ein kleines Tool zur vereinfachten bedinung von Travian schreiben nur leider bekomme ich das irgendwie nicht auf die Reihe. da mein Code nicht so recht funktioniert hat habe ich mir den code von jemand anderes mal geklaut aber der ergibt das gleiche problem. Das Probleme ist er zeigt die Seite nicht richtig an und er baut keine truppen wenn ich auf Button1 click. wenn mir einer das vielleicht mal flicken könnte oder mir erklären...
Datei kopieren nach login mit httpwebrequest funktioniert nicht - vb.net 2010
06/08/2012 - .NET Languages - 0 Replies
bitte löschen
[VB] HttpWebRequest Problem -.-
02/02/2012 - .NET Languages - 1 Replies
Hallo liebe Elitepvpers User, ich habe leider folgendes Problem: Ich möchte von dem Spam Email Anbieter "yopmail.com" meine Emails auslesen. Dazu muss ich mich auf der Webseite einfach mit "test" Anmelden Hierzu der HTTP Header : Siehe Anhang accname = Account Name im Beispiel "test"
[C#]MD5-Cheksumme mit HttpWebRequest oä
08/18/2010 - .NET Languages - 1 Replies
Ich will mir mal einen gescheiten Patcher für Metin2 machen.. Jetzt soll er von den Files auf meinem Server die Checksummen ausspucken. Die Datei sollte nicht heruntergeladen werden... System.IO.FileStream FileCheck = System.IO.File.OpenRead(Dateipfad); System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvi der(); byte md5Hash = md5.ComputeHash(FileCheck);



All times are GMT +1. The time now is 11:28.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.