Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
16 / 16 / 3
Регистрация: 07.04.2010
Сообщений: 145

Не получается отправить Post запрос

27.03.2012, 09:33. Показов 5362. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть сайт когда туда заходишь надо указать что тебе больше 18 и т.д. Хочу программно это сделать.
Вот что просниффил:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
POST /choice/check HTTP/1.1
Host: www.bochkavpechatleniy.com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0
Accept: */*
Accept-Language: en-us,en;q=0.7,ru;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://www.bochkavpechatleniy.com/choice
Content-Length: 107
Cookie: uniq_id=11075584; __utma=221629963.2098014455.1332771477.1332819560.1332822127.4; __utmz=221629963.1332771477.1.1.utmcsr=e.mail.ru|utmccn=(referral)|utmcmd=referral|utmcct=/cgi-bin/msglist; _user_birthday_date=02; _user_birthday_month=02; _user_birthday_year=1967; _user_country=150; _user_language=45; PHPSESSID=lu9grejkptpq46o39tbh2noip6; __utmc=221629963; __utmb=221629963.2.10.1332822127
Pragma: no-cache
Cache-Control: no-cache
 
user_country=150&user_language=45&user_birthday_date=4&user_birthday_month=2&user_birthday_year=1971&ajax=1
Вот как пытаюсь:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  private void button1_Click(object sender, EventArgs e)
        {
            WebRequest webreq = WebRequest.Create("http://www.bochkavpechatleniy.com/choice");
            webreq.Method = "POST";
            webreq.Timeout = 120000;
            webreq.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
            byte[] sentData = Encoding.UTF8.GetBytes("user_country=150&user_language=45&user_birthday_date=4&user_birthday_month=2&user_birthday_year=1971&ajax=1");
            webreq.ContentLength = sentData.Length;
 
            Stream sendstream = webreq.GetRequestStream();
            sendstream.Write(sentData, 0, sentData.Length);
            sendstream.Close();
            WebResponse webresp = webreq.GetResponse();
            //webBrowser1.Navigate(webresp.ResponseUri);
            Stream respstream = webresp.GetResponseStream();
            //webBrowser1.DocumentStream = respstream;
            StreamReader str = new StreamReader(respstream);
            richTextBox1.Text = str.ReadToEnd();
            str.Close();
            respstream.Close();
        }
P.S ничего противозаконного не делаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2012, 09:33
Ответы с готовыми решениями:

Отправить post запрос на JSON
Всем привет , использую WebBrowser что бы отправлять пост запросы , и для сайта realty.mail.ru нужно отправить сюда ---...

Отправить Post-запрос средствами XNet
Доброго суток всем. Проблема с отправлением post-запроса, средствами xNet. Нужно отправить заполненную форму, в формате: ...

Отправить POST-запрос через Awesomium
Здравствуйте, господа! Нужен пример отправки post запроса через Awesomium, например, по нажатию кнопки. Есть url, на который нужно...

10
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
27.03.2012, 14:07
Посчитайте статью как работать с запросами ,особенно с куками
Должна помочь
http://www.rsdn.ru/article/inet/httpweb.xml
0
16 / 16 / 3
Регистрация: 07.04.2010
Сообщений: 145
27.03.2012, 16:14  [ТС]
Попробовал теперь так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.bochkavpechatleniy.com/choice");
 
            myHttpWebRequest.UserAgent = "Opera/9.50 (Windows NT 5.1; U; MRA 5.7 (build 03797); ru)";
            myHttpWebRequest.Accept = "*/*, text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1";
            myHttpWebRequest.Headers.Add("Accept-Language", "ru");
 
            
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
 
            // получаем куки, которые возвратил 
            string sCookies = "";
            if (!String.IsNullOrEmpty(myHttpWebResponse.Headers["Set-Cookie"]))
            {
                sCookies = myHttpWebResponse.Headers["Set-Cookie"];
            }
 
           
            myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.bochkavpechatleniy.com/choice/check");
 
            myHttpWebRequest.Method = "POST"; // метод POST
            myHttpWebRequest.Host = "www.bochkavpechatleniy.com";
            myHttpWebRequest.Referer = "http://www.bochkavpechatleniy.com/choice";
            myHttpWebRequest.UserAgent = "Opera/9.50 (Windows NT 5.1; U; MRA 5.7 (build 03797); ru)";
            myHttpWebRequest.Accept = "*/*, text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1";
            myHttpWebRequest.Headers.Add("Accept-Language", "ru");
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
 
            // передаем куки, полученные в предыдущем запросе
            if (!String.IsNullOrEmpty(sCookies))
            {
                myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies);
            }
 
            // ставим False, чтобы при получении кода 302 не делать автоматический редирект
            myHttpWebRequest.AllowAutoRedirect = false;
 
 
            HttpWebResponse webResp = (HttpWebResponse)myHttpWebRequest.GetResponse();
            webBrowser1.DocumentStream = webResp.GetResponseStream();
 
            string sQueryString = "user_country=150&user_language=45&user_birthday_date=3&user_birthday_month=2&user_birthday_year=1969&ajax=1";
            byte[] ByteArr = System.Text.Encoding.GetEncoding(1251).GetBytes(sQueryString);
            myHttpWebRequest.ContentLength = ByteArr.Length;
            myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length);
 
            // выполняем запрос
            myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
 
            // найден новый url
            string sLocation = myHttpWebResponse.Headers["Location"];
            if (!String.IsNullOrEmpty(sLocation))
            {
                // получам куки
                sCookies = "";
                if (!String.IsNullOrEmpty(myHttpWebResponse.Headers["Set-Cookie"]))
                {
                    sCookies = myHttpWebResponse.Headers["Set-Cookie"];
                }
                myHttpWebRequest.Method = "POST"; // метод POST
                myHttpWebRequest.Host = "www.bochkavpechatleniy.com";
                myHttpWebRequest.Referer = "http://www.bochkavpechatleniy.com/choice";
                myHttpWebRequest.UserAgent = "Opera/9.50 (Windows NT 5.1; U; MRA 5.7 (build 03797); ru)";
                myHttpWebRequest.Accept = "*/*, text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1";
                myHttpWebRequest.Headers.Add("Accept-Language", "ru");
                myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
                if (!String.IsNullOrEmpty(sCookies))
                {
                    myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies);
                }
                // выполняем запрос
                myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
            }
            webBrowser1.DocumentStream = myHttpWebResponse.GetResponseStream();
        }
Программа запускается но когда начинаются отправляться запросы. Ошибка в
C#
1
myHttpWebRequest.ContentLength = ByteArr.Length;
.
This property cannot be set after writing has started.
0
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
27.03.2012, 16:31
Цитата Сообщение от kazrulit Посмотреть сообщение
This property cannot be set after writing has started.
Перевожу - Свойство не может быть установлено после того как запись в поток уже началась !
0
16 / 16 / 3
Регистрация: 07.04.2010
Сообщений: 145
27.03.2012, 16:51  [ТС]
Ну а что сделать то?) В примере автора все работает. только оно с яндексом настроена.
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
27.03.2012, 17:51
1) должно быть по одному HttpWebRequest для каждого запроса
2) после получения ответа нельзя изменять запрос, ибо ответ можно получить лишь раз

В примере автора все работает
звучит как-будто код и в примере и у тебя одинаковый
вот только там 20 строк, а тут 74...
0
16 / 16 / 3
Регистрация: 07.04.2010
Сообщений: 145
27.03.2012, 18:26  [ТС]
я то ненужные вещи которые нужны для работы с консолью и т.д подрезал.
0
20 / 20 / 1
Регистрация: 03.01.2013
Сообщений: 184
10.01.2013, 12:01
Позвольте задать 1 вопрос, во многих места я видел подобные выводы:
POST /choice/check HTTP/1.1
Host: www.bochkavpechatleniy.com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0
Accept: */*

Суть вопроса, как, каким образом это получить?!
0
56 / 56 / 14
Регистрация: 06.04.2012
Сообщений: 185
10.01.2013, 15:53
Снифер, Firebug и т.д.
0
20 / 20 / 1
Регистрация: 03.01.2013
Сообщений: 184
11.01.2013, 13:48
А Fiddler подойдет?
0
56 / 56 / 14
Регистрация: 06.04.2012
Сообщений: 185
11.01.2013, 15:30
Думаю подойдет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2013, 15:30
Помогаю со студенческими работами здесь

Как отправить файл через POST-запрос
как отправить файл через POST запрос?

Как отправить POST запрос и проверить правильные ли данные
Добрый день! Мне необходимо посылать POST запрос на страницу "http://IP/login.php". Прослушал сниффером. В запросе передаются такие...

Как отправить правильный POST запрос с помощью xNet?
Здравствуйте, столкнулся с проблемой которую решить еще не получилось, да и не встречал решений для xNet. Я использую библиотеку xNet для...

Отправить на сервер сначала GET-запрос, а затем POST, не закрывая соединения
Доброго времени суток! Подскажите, как можно отправить на сервер сначала get-запрос, а затем post, не закрывая соединения? Например, мне...

Необходимо перехватить ответ на post-запрос, отредактировать его, и отправить дальше
Ситуация такая пишу свой браузер, специфика задачи не позволяет использовать стандартные, необходимо перехватить ответ на post-запрос, там...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru