Авторизоваться и загрузить html с сайта (С#). - CodeHelper

Авторизоваться и загрузить html с сайта (С#).

2

Требуется методом post авторизоваться через httpwebresponse/request на одном простом сайте и вытянуть html в переменную.

У меня проблема в том, что если на ресурсе относительные пути, скрипт выдаёт ошибку

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

1

Вероятно были проблема с куками или сессией

CookieContainer cookies = new CookieContainer();
cookies.Add(new Cookie("ASP.NET_SessionId", sessionId));
var URL = "http://www.somesite.com";
HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest;
webRequest.Credentials = new NetworkCredential(ExtAccountToUse, ExtPassword);
webRequest.CookieContainer = cookies; // note this
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";                
webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.1b2) Gecko/20081201 Firefox/3.1b2";
webRequest.ContentLength = paramStream.Length;
byte[] paramStream = Encoding.ASCII.GetBytes("param1=value&param2=value2");
using (Stream stream = webRequest.GetRequestStream())
{
    stream.Write(paramStream, 0, paramStream.Length);
}

string result;
using (WebResponse response = request.GetResponse())
{
    using (var sr = new StreamReader(response.GetResponseStream()))
    {
        result = sr.ReadToEnd();
    }
}

Новые ответы


0

Некоторые web-платформы поддерживают механизмы защиты от Cross-Site Request Forgery. Так в ASP.NET MVC можно расположить на форме input типа hidden (Anti Forgery Token), содержащий определенные данные. Когда осуществляется post, на сервере проверяется корректность этого поля. Соответственно, наличие на сайте такого механизма может также препятствовать автоматическому post`у.

Syrex

Может подскажете. как должен выглядеть запрос POST для такого блока?!


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