ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

C# WebRequest - WebResponse
  #1  
Старый 13.03.2010, 17:23
WAYS
Познающий
Регистрация: 12.11.2008
Сообщений: 33
Провел на форуме:
67053

Репутация: 15
Отправить сообщение для WAYS с помощью ICQ
По умолчанию C# WebRequest - WebResponse

Всем привет, столкнулся с проблемой чтения ответа после пост запроса.
Проблема в том что я делаю запрос, после чего я должен получить куки #1, потом, оно меня кидает на иную страницу и я получаю куки #2.

Код:
              string uri = "http://site.com/login.php";
              string parameters = "username=" + tb_login.Text + "&password=" + tb_pass.Text;
              WebRequest webRequest = WebRequest.Create(@uri);
              Stream os = null;
              webRequest.Method = "POST";
              webRequest.Timeout = 15000;
              webRequest.ContentType = "application/x-www-form-urlencoded";
              webRequest.Headers.Add("Accept-Language", "ru-RU,ru;q=0.9,en;q=0.8");
              webRequest.Headers.Add("Accept-Charset", "iso-8859-1, utf-8, utf-16, *;q=0.1");
              webRequest.Headers.Add("Accept-Encoding", "deflate, gzip, x-gzip, identity, *;q=0");
            byte[] bytes = Encoding.UTF8.GetBytes(parameters);
            try
            { 
                webRequest.ContentLength = bytes.Length;
                os = webRequest.GetRequestStream();
                os.Write(bytes, 0, bytes.Length); 
            }
            catch
            {
            }
            finally
            {
                if (os != null)
                {
                    os.Close();
                }
            }

WebResponse webResponse = webRequest.GetResponse();
                MessageBox.Show(webResponse.Headers.ToString());
                Меня в момент авторизации перекидывает на другую страницу, и я не получаю заголовки с 1й.
Как получить куки 1?, я в чарлесе их вижу.
 
Ответить с цитированием

  #2  
Старый 13.03.2010, 18:38
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Мб стоит в начале написать
webRequest.AllowAutoRedirect = false;
и самостоятельно обрабатывать редирект
 
Ответить с цитированием

  #3  
Старый 13.03.2010, 20:13
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

https://forum.antichat.ru/thread179068.html
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #4  
Старый 14.03.2010, 02:37
WAYS
Познающий
Регистрация: 12.11.2008
Сообщений: 33
Провел на форуме:
67053

Репутация: 15
Отправить сообщение для WAYS с помощью ICQ
По умолчанию

Сделал
Код:
        public string aut()
        {
            var url = "http://site.com/login.php";
            var postData = "username=" + tb_login.Text + "&password=" + tb_pass.Text;
            var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
            string Cookies = null;
            httpWebRequest.AllowAutoRedirect = false;
            httpWebRequest.Method = "POST";
            httpWebRequest.ContentType = "application/x-www-form-urlencoded";
            var buffer = Encoding.ASCII.GetBytes(postData);
            httpWebRequest.ContentLength = buffer.Length;
            try
            {
                using (var writer = httpWebRequest.GetRequestStream())
                {
                    writer.Write(buffer, 0, buffer.Length);
                }
                using (var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
                {
                    Settings1.Default.global_cookie = string.IsNullOrEmpty(httpWebResponse.Headers["Set-Cookie"]) ? "" : httpWebResponse.Headers["Set-Cookie"];
                    Settings1.Default.Save();
                    url = httpWebResponse.Headers.Get("Location") ?? "";
                }
                httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                httpWebRequest.Method = "GET";
                if (!string.IsNullOrEmpty(Cookies))
                {
                    httpWebRequest.Headers.Add(HttpRequestHeader.Cookie, Cookies);
                }
                using (var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
                {
                    Settings1.Default.cookie = string.IsNullOrEmpty(httpWebResponse.Headers["Set-Cookie"]) ? "" : httpWebResponse.Headers["Set-Cookie"];
                    return httpWebResponse.ResponseUri.ToString();
                }
            }
            catch (Exception er)
            {
                this.Invoke(new UpdateResultCallback(this.UpdateResult), new object[] { er.Message });
                return null;
            }
         }

Последний раз редактировалось WAYS; 14.03.2010 в 14:44..
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ