Добавить cookie в запрос на получение html кода страницы - CodeHelper

Добавить cookie в запрос на получение html кода страницы

1

Доброго времени суток всем! У меня такая проблема. Я реализую приложение, которое организует авторизацию на сайте с отображение куков, и выводит код html авторизированной страницы в textBox.

Вот код:

            StringBuilder msg = new StringBuilder(String.Empty);
            Uri st = new Uri("http://www.deviantart.com");
            string reqString = String.Format("username={0}&password={1}", username, password);
            byte[] requestData = Encoding.UTF8.GetBytes(reqString);
            CookieContainer cc = new CookieContainer();
            var request = (HttpWebRequest)WebRequest.Create(thURI);
            request.Proxy = null;
            request.AllowAutoRedirect = false;
            request.CookieContainer = cc;
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";

            using (System.IO.Stream s = request.GetRequestStream())
                s.Write(requestData, 0, requestData.Length);
            using (var response = (HttpWebResponse)request.GetResponse())
            {
                foreach (var str in cc.GetCookies(st))
                {
                    msg.Append(str);
                }

                textBox1.AppendText(msg.ToString());

            }

            WebRequest req = WebRequest.Create("http://www.deviantart.com/?loggedin=1");
            req.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse respons = (HttpWebResponse)req.GetResponse();
            Stream dataStream = respons.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            textBox3.AppendText(responseFromServer);
            reader.Close();
            dataStream.Close();
            respons.Close();

Приложение работает, но не корректно. Если быть точнее авторизация проходит, и выдается html страница, НО не авторизированная.

Как можно исправить данную проблему, исходя и моего кода? Как добавить к запросу, полученные куки?

HELP Please :(

Лучший ответ:

1

У меня сработал следующий код:

var msg = new StringBuilder(String.Empty);
var st = new Uri("http://www.deviantart.com");
var reqString = String.Format(
    "reusetoken=1&username={0}&password={1}", 
    username, password);
var requestData = Encoding.UTF8.GetBytes(reqString);
var cc = new CookieContainer();
var request = (HttpWebRequest) 
    WebRequest.Create(
        "https://www.deviantart.com/users/login"); 1
request.Credentials = CredentialCache.DefaultCredentials;
request.AllowAutoRedirect = false;
request.KeepAlive = true;
request.CookieContainer = cc;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";
request.ContentLength = requestData.Length;

using (var s = request.GetRequestStream())
{
    s.Write(requestData, 0, requestData.Length);
}

var webResponse = request.GetResponse();
using (var stream = new StreamReader(webResponse.GetResponseStream()))
{
    var content = stream.ReadToEnd();
    Console.WriteLine(content);

    foreach (var str in cc.GetCookies(st))
    {
        msg.Append(str);
    }

    Console.WriteLine(msg.ToString());
}

HttpWebRequest req = (HttpWebRequest) WebRequest.Create("http://www.deviantart.com/?loggedin=1");
req.CookieContainer = cc;  2
req.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse respons = (HttpWebResponse)req.GetResponse();
Stream dataStream = respons.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStream.Close();
respons.Close();

Console.ReadLine();

Тут важно то, что при логине используется протокол https вместо http 1. И при втором обращении к сайту нужно использовать CookieContainer от первого обращения 2.

kiborg

Спасибо огромное.

Новые ответы


0

sildenafil online kamagra

0

boy, did I keep my distance.For some reason I've been fanasizing about other women lately.I am married and therefore must insure discretion.Anyway, enough about me.I marveled at the smooth folds of skin, and the lack of anything else around them.I know that trying new things sexually is not easy for many women, but I try very hard to be accommodating--who knows when i might find a new favorite thing to do..Up until Pete came inside me.I've played a lot of tennis, but I've never finished a match feeling like this — and the evening was just beginning. [URL=http://amateursharedcu.amateurdecember.info/test-ethics-finally-home-mom-stay.html]test ethics finally home mom stay[/URL][URL=http://amateuraudition.amateurcasero.info/amateur-pole-dancers.html]amateur pole dancers[/URL][URL=http://burntoutstayath.amateurboard.info/amateur-shemale.html]amateur shemale[/URL][URL=http://aspendesperatea.amateurcorridor.info/amateur-rough-painful-anal.html]amateur rough painful anal[/URL][URL=http://homemadesexporn.amateurfingered.info/home-made-porno.html]home made porno[/URL][URL=http://privateathomeop.amateurdecember.info/slutload-blowjob-amateurs.html]slutload blowjob amateurs[/URL][URL=http://aspendesperatea.amateurcorridor.info/irish-amateur-dogging.html]irish amateur dogging[/URL][URL=http://bigtitbrunettea.amateurencounters.info/amateur-handjobs-and-sex-movies.html]amateur handjobs and sex movies[/URL][URL=http://dailyamateurs.amateurboard.info/senior-swinger-home-party.html]senior swinger home party[/URL][URL=http://privateathomeop.amateurdecember.info/private-home-sex-video.html]private home sex video[/URL]


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.