Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Отправка POST запросов. WinRT

Ответить
Настройки темы
.NET - [решено] Отправка POST запросов. WinRT

В Поисках Истины


Сообщения: 802
Благодарности: 135


Конфигурация

Профиль | Отправить PM | Цитировать


Добрый день.

При отправке POST запроса к серверу получаю ответ: StatusCode: 406, ReasonPhrase: 'Not Acceptable'
При помощи Fiddler просматриваю запросы. Выглядит так:
HTML код: Выделить весь код
POST сервер HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Referer: сервер Accept-Language: ru,en-US;q=0.7,en;q=0.3 User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate Host: l*** Content-Length: 221 DNT: 1 Connection: Keep-Alive Cache-Control: no-cache Cookie: JSESSIONID=28847AE460F24E8F4EAD85CD0A2F3DA9; JSESSIONID=858E247EE14B369C9EB0718054DA2888; ip.t=ae3aaa6f875e9597daf242ffeeea9e57; AMAuthCookie=AQIC5wM2LY4SfcwHrDxvqJlHkIHKoy663iRj9jC5zx9RK3A.*AAJTSQACMDQAAlNLAAstMTE0ODg3Mzk1MgACUzEAAjAz*; amlbcookie=01; auth-back-url=https://***/Login?gx_charset=UTF-8 IDToken1=ЛОГИН&IDToken2=ПАРОЛЬ&IDButton=Submit&goto=&encoded=false&loginURL=%2Famserver%2FUI%2FLogin%3Fgx_charset%3DUTF-8%26auth-status%3D0&CSRFToken=ТОКЕН

Создаю такой код:
Код: Выделить весь код
string TextView = "IDToken1=ЛОГИН&IDToken2=ПАРОЛЬ&IDButton=Submit&goto=&encoded=false&loginURL=%2Famserver%2FUI%2FLogin%3Fgx_charset%3DUTF-8%26auth-status%3D0&CSRFToken=" + Token;

            byte[] buf = System.Text.Encoding.UTF8.GetBytes(TextView);

            HttpClientHandler hClient5 = new HttpClientHandler();
            hClient5.UseDefaultCredentials = true;
            hClient5.AllowAutoRedirect = false;
            hClient5.CookieContainer = cc;   // в сс храняться ранее собранные куки
            hClient5.ClientCertificateOptions = ClientCertificateOption.Automatic;
           


            HttpClient req5 = new HttpClient(hClient5);
            req5.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
            req5.DefaultRequestHeaders.Add("Accept", "*/*");
            req5.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate");

            HttpContent cont = new StreamContent(new MemoryStream(buf));
            cont.Headers.ContentLength = buf.Length;
            cont.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/x-www-form-urlencoded");

            HttpResponseMessage resp5 = await req5.PostAsync("***/Login?gx_charset=UTF-8&auth-status=0", cont);
В итоге ошибка 406. Помогите разобраться!

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 13:41, 05-05-2013

 
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


попробуй сделать POST браузером через веб-форму, посмотри запрос-ответ

Отправлено: 17:14, 05-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


pva, а можно поподробнее, что вы имеете ввиду? я так сказать, только начинающий, в работе с GET/POST запросами.

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 17:50, 05-05-2013 | #3


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Нашел причину неработоспособности кода - отсутствие Accept-Language: ru,en-US;q=0.7,en;q=0.3.
Добавил
Код: Выделить весь код
req5.DefaultRequestHeaders.Add("Accept-Language", "ru,en-US;q=0.7,en;q=0.3");
Работает!

Видимо, в выходные нужно отдыхать)

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:04, 06-05-2013 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Отправка POST запросов. WinRT

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
POST-сигнал и POST-code нормально. Загрузка есть. Монитор не "светит". yurfed Непонятные проблемы с Железом 2 05-01-2013 19:14
[решено] post type или custom post в wordpress aggressor_ Вебмастеру 6 19-05-2012 18:36
C/C++ - Отправка запросов на php Rain789 Программирование и базы данных 5 29-01-2011 11:44
Прочее - Отправка через софт Telstra M02 USSD запросов Nordi13 Сетевые технологии 0 17-10-2010 03:18
[решено] отправка параметров POST +GET bruder Вебмастеру 1 17-04-2008 20:20




 
Переход