@llexus

Как получить куки при входе на сайт с использованием PCL's HttpWebRequest, если страница редиректит?

Решил я переписать свою либу, которую писал конкретно для WP7 (event based async), на Portable Class Library (планирую сделать поддержку WStore apps в дальнейшем) с использованием всяких прелестей вроде async/await. Да вот незадача. В самом же начале столкнулся с проблемами, большинство уже решил, но одна так и осталась. При входе на сайт, он возвращает 302 и нужные мне куки, потом перекидывает на главную. В WP7 я просто устанавливал AllowAutoRedirect = false и все прекрасно работало. Но вот в PCL этой проперти нету :( К сожалению, в гугле ничего не нашел. Может быть MS сделали какой то другой путь для отключения редиректа, а я и не в курсе?
Ну и маленький вопрос из праздного любопытства: насколько я знаю WebClientа нету в PCL, остается либо HttpWebRequest, либо нугетить HttpClient. Я пока особо не пользовался ни тем, ни другим. Что вообще удобнее и для каких целей удобнее?
  • Вопрос задан
  • 2337 просмотров
Решения вопроса 1
@llexus Автор вопроса
Подсказали решение на форуме msdn
На всякий случай выложу кусок кода побольше, вдруг кому пригодится, но сначала надо установить портабл версию HttpClientа

Install-Package Microsoft.Net.Http

HttpClientHandler hch = new HttpClientHandler();
hch.AllowAutoRedirect = false;
HttpClient hc = new HttpClient(hch);

StringContent queryString = new StringContent(string.Format("login={0}&password={1}", Uri.EscapeUriString(username), Uri.EscapeUriString(password));
queryString.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/x-www-form-urlencoded");

HttpResponseMessage msg = await hc.PostAsync("http://www....", queryString);
string responseBody = await msg.Content.ReadAsStringAsync();
...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы