Подключитесь на сайте с HttpWebRequest

Я пытался использовать HttpWebRequest для подключения к сайту для загрузки источника, который необходимо было зарегистрировать. Запрос не связывает меня или не держит меня на связи, чтобы позволить мне делать то, что я хочу, как загрузить источник, чтобы получить специальную информацию, связанную, например, с моей учетной записью.

Вот моя первая попытка:

private void button6_Click(object sender, EventArgs e)
    {

        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("example.com/index.php?do=login");
        CookieContainer cookieContainer = new CookieContainer();
        request.CookieContainer = cookieContainer;

        request.Method = "POST";
        string postData = "username=user&password=pass";
        byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        request.ContentType = "application/x-www-form-urlencoded";
        request.UserAgent = "Foo";
        request.Accept = "*/*";
        request.Headers.Add("Authorization", "Basic ");
        request.ContentLength = byteArray.Length;
        Stream dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        string Text = "";

        foreach (Cookie cook in response.Cookies)
        {
            Text += "COOKIE: " + cook.Name + " = " + cook.Value + "\r\n";
        }
        request.AllowAutoRedirect = true;
        dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        string responseFromServer = reader.ReadToEnd();
        reader.Close();
        dataStream.Close();
        response.Close();

        webBrowser1.Navigate("example.com/client.php"); // client.php can be only visited when the user is log in.
        // redirect me on /index.php instead of client.php
    }

Я также пытался использовать веб-клиент:

using (var client = new CookieAwareWebClient())
        {
            var values = new NameValueCollection
          {
                { "username", "user" },
                { "password", "pass" },
          };

            // Was forced to use user-agent or the server return me a 403 Error
            client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
            client.UploadValues("example.com/index.php?process=login", values);

            client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
            string result = client.DownloadString("example.com/client.php");
            Console.WriteLine(result);
            // The source is a document location replace to logout.php?raison=Erreur
        }

private class CookieAwareWebClient : WebClient
    {
        public CookieAwareWebClient()
            : this(new CookieContainer())
        { }
        public CookieAwareWebClient(CookieContainer c)
        {
            this.CookieContainer = c;
        }
        public CookieContainer CookieContainer { get; set; }

        protected override WebRequest GetWebRequest(Uri address)
        {
            WebRequest request = base.GetWebRequest(address);

            var castRequest = request as HttpWebRequest;
            if (castRequest != null)
            {
                castRequest.CookieContainer = this.CookieContainer;
            }
            return request;
        }
    }

Я новичок, поэтому я уверен, что совершил глупые ошибки, но я ищу решение своей проблемы с 2 недель, я действительно надеюсь, что кто-то может мне помочь.

Извините за английский, я француз.

0 ответов

Другие вопросы по тегам