Добавить комментарий - CodeHelper

Добавить комментарий

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

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.

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