HTTPWebRequest(POST)- Web Exception

01/01/2014 14:43 beefm4ker#1
Hallo!

Ich versuche gerade mir eine Art Bot für [Only registered and activated users can see links. Click Here To Register...] zu schreiben.

Ich scheitere schon am einloggen mit den Webrequests -.- Bei mir wird immer eine Webexception aufgerufen -.-
Wenn ich mir das ganze in Fiddler anschaue kann ich auch auf Anhieb keinen Unterschied erkennen ausser dass wenn ich mich normal über die Seite einlogge ein POST-Request auf /get_address.php geschieht und dann eine Weiterleitung auf /index.php die mit dem HTTP Status 200 endet.
Wenn ich allerdings meinen Code ausprobiere bekomme ich nur eine ständige Weiterleitung (Http Status 302) und es wird eine WebException ausgelöst.

Code:
namespace primedice
{
    public class clsFunctions
    {
        private string userAgent = "Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0";
        private CookieContainer cookies;
        private const string sHostURL = "https://primedice.com";


        public clsFunctions()
        {
            this.cookies = new CookieContainer();
        }


        public string login(string sPath, string sParameter)
        {
            sPath = "/get_address.php";
            sParameter = "id=81028&password=.wyp%29%3CYKgwDT*l4";
            string message;
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] postData = encoding.GetBytes(sParameter);
            this.cookies = new CookieContainer();
            System.Net.ServicePointManager.Expect100Continue = false;
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sHostURL + sPath);
                request.Method = "POST";
                request.UserAgent = this.userAgent;
                request.CookieContainer = this.cookies;
                request.Referer = sHostURL + "/login.php";
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = postData.Length;
                request.AllowAutoRedirect = true;
                request.MaximumAutomaticRedirections = 10;
                Stream dataStream = request.GetRequestStream();
                dataStream.Write(postData, 0, postData.Length);
                dataStream.Close();
                WebResponse response = request.GetResponse();
                MessageBox.Show(((HttpWebResponse)response).StatusDescription);
                message = new StreamReader(response.GetResponseStream()).ReadToEnd();
            }
            catch (WebException exep)
            {
                MessageBox.Show(exep.Status.ToString());
                MessageBox.Show(((HttpWebResponse)exep.Response).StatusCode.ToString());
                MessageBox.Show(((HttpWebResponse)exep.Response).StatusDescription);
                message = "Login";
            }

            return message;
        }


    }
}
Ich dachte das [Only registered and activated users can see links. Click Here To Register...] möglicherweise die Lösung ist, allerdings leider nein.

Hat wer einen anderen Lösungsansatz für mich? :/
01/01/2014 21:08 b0tterk2#2
Der Host lautet primedice.com und nicht [Only registered and activated users can see links. Click Here To Register...]. Könnte es daran liegen?
01/01/2014 21:48 beefm4ker#3
Nein daran liegt es leider nicht :( Und ich konnte bisher auch nicht rausfinden woran es liegt :-/ Mit GET-Requests klappt das ganze.. :/
01/02/2014 00:01 'Heaven.#4
Du musst die Cookies PHPSESSID und session setzen lassen, du kannst das auch manuell machen.
01/02/2014 02:50 beefm4ker#5
Vielen Dank. Hatte es nach viel rumprobieren dann so gemacht ^^