Требуется методом post
авторизоваться через httpwebresponse/request
на одном простом сайте и вытянуть html
в переменную.
У меня проблема в том, что если на ресурсе относительные пути, скрипт выдаёт ошибку
Требуется методом post
авторизоваться через httpwebresponse/request
на одном простом сайте и вытянуть html
в переменную.
У меня проблема в том, что если на ресурсе относительные пути, скрипт выдаёт ошибку
Вероятно были проблема с куками или сессией
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¶m2=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();
}
}
Некоторые web-платформы поддерживают механизмы защиты от Cross-Site Request Forgery. Так в ASP.NET MVC можно расположить на форме input типа hidden (Anti Forgery Token), содержащий определенные данные. Когда осуществляется post, на сервере проверяется корректность этого поля. Соответственно, наличие на сайте такого механизма может также препятствовать автоматическому post`у.
Может подскажете. как должен выглядеть запрос POST для такого блока?!