|
!!Куплю ДАТИНГ Базы!!! Куплю БД ДАТИНГ Сайтов!!! Куплю ДАТИНГ Отклик!!

Продвину Ваш сайт в ТОП. Робот WebEffector.
 |
|

12.05.2012, 20:25
|

Elder - Старейшина
Регистрация: 01.03.2007
Сообщения: 185
Провел на форуме: 1 неделю 2 дня
|
|
Сообщение от Hack_ERR++
Как в C# можно поочередно отправить сначала GET, затем POST запрос, не разрывая соединения? HttpWebRequest или WebClient - не важно.
Ты имеешь ввиду параллельно? Если да - то создай отдельный трид и уже по ситуации делай их синхронными или асинхронными в зависимости от надобности.
Если просто поочередно отправить запросы, то просто не закрывай соединение и шли новый смотрим , но не закрывай ответ.
|
|
|

12.05.2012, 21:52
|

Познающий
Регистрация: 13.08.2009
Сообщения: 45
Провел на форуме: 4 дня 12 часов 25 минут
|
|
Просто поочередно надо.
Делаю так:
Код:
/*сначала гет*/
HttpWebRequest reqg = (HttpWebRequest)System.Net.WebRequest.Create("сайт");
HttpWebResponse resp = (HttpWebResponse)reqg.GetResponse();
System.IO.Stream stream = resp.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(stream);
string st = sr.ReadToEnd();
/*потом пост*/
reqg.Method = "POST";
reqg.Timeout = 100000;
reqg.ContentType = "application/x-www-form-urlencoded";
byte[] sentData = Encoding.GetEncoding(1251).GetBytes("запрос");
reqg.ContentLength = sentData.Length;
System.IO.Stream sendStream = reqg.GetRequestStream();
sendStream.Write(sentData, 0, sentData.Length);
sendStream.Close();
ругается на reqg.ContentLength = sentData.Length (Это свойство не может быть установлено после того, как началась запись.). Если для поста сделать отдельный WebRequest.Create, ошибок нет, но и результата тоже.
|
|
|

12.05.2012, 22:27
|

Elder - Старейшина
Регистрация: 01.03.2007
Сообщения: 185
Провел на форуме: 1 неделю 2 дня
|
|
Сообщение от Hack_ERR++
Просто поочередно надо.
Делаю так:
Код:
/*сначала гет*/
HttpWebRequest reqg = (HttpWebRequest)System.Net.WebRequest.Create("сайт");
HttpWebResponse resp = (HttpWebResponse)reqg.GetResponse();
System.IO.Stream stream = resp.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(stream);
string st = sr.ReadToEnd();
/*потом пост*/
reqg.Method = "POST";
reqg.Timeout = 100000;
reqg.ContentType = "application/x-www-form-urlencoded";
byte[] sentData = Encoding.GetEncoding(1251).GetBytes("запрос");
reqg.ContentLength = sentData.Length;
System.IO.Stream sendStream = reqg.GetRequestStream();
sendStream.Write(sentData, 0, sentData.Length);
sendStream.Close();
ругается на reqg.ContentLength = sentData.Length (Это свойство не может быть установлено после того, как началась запись.). Если для поста сделать отдельный WebRequest.Create, ошибок нет, но и результата тоже.
Ну так тебе нужно создать второй запрос, а ты его не создаешь - ты делаешь так: Создал запрос, считал ответ, переприсвоил вариант метода и всё. Тебе нужно создать полностью новый запрос для поста new() .
Я так понимаю, что нужно зайти на сайт Постом, получить данные печеньки или хз что там, и после чего сделать ещё один запрос, на этот раз Гет?
|
|
|

12.05.2012, 22:35
|

Познающий
Регистрация: 13.08.2009
Сообщения: 45
Провел на форуме: 4 дня 12 часов 25 минут
|
|
наоборот, сначала гет, затем пост.
Тебе нужно создать полностью новый запрос для поста
Создавал - ошибки нет, но результат уже не тот. Там в коде страницы есть что-то вроде key, вот его мне нужно считать. Если сделать так:
Код:
HttpWebRequest reqg = (HttpWebRequest)System.Net.WebRequest.Create("сайт");
HttpWebResponse resp = (HttpWebResponse)reqg.GetResponse();
System.IO.Stream stream = resp.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(stream);
string st = sr.ReadToEnd();
HttpWebRequest req = (HttpWebRequest)System.Net.WebRequest.Create("сайт"); //новый запрос
req.Method = "POST";
req.Timeout = 100000;
req.ContentType = "application/x-www-form-urlencoded";
byte[] sentData = Encoding.GetEncoding(1251).GetBytes("запрос");
req.ContentLength = sentData.Length;
System.IO.Stream sendStream = reqg.GetRequestStream();
sendStream.Write(sentData, 0, sentData.Length);
sendStream.Close();
и, скажем, в textbox1 и textbox2 считать коды страниц после GET и после POST - они различаются, т.е. различается мой key.
|
|
|

13.05.2012, 13:51
|

Участник форума
Регистрация: 03.03.2011
Сообщения: 104
Провел на форуме: 3 дня 11 часов 34 минуты
|
|
@Hack_ERR++ ну тк там наверно этот key зависит от cookie, а ты их не передаешь. Вообще вопрос задан очень сумбурно, сформулируй правильно вопрос и я уверен что ты сам сможешь на него ответить.
|
|
|

13.05.2012, 14:40
|

Elder - Старейшина
Регистрация: 01.03.2007
Сообщения: 185
Провел на форуме: 1 неделю 2 дня
|
|
Сообщение от Hack_ERR++
наоборот, сначала гет, затем пост.
Создавал - ошибки нет, но результат уже не тот. Там в коде страницы есть что-то вроде key, вот его мне нужно считать. Если сделать так:
Код:
HttpWebRequest reqg = (HttpWebRequest)System.Net.WebRequest.Create("сайт");
HttpWebResponse resp = (HttpWebResponse)reqg.GetResponse();
System.IO.Stream stream = resp.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(stream);
string st = sr.ReadToEnd();
HttpWebRequest req = (HttpWebRequest)System.Net.WebRequest.Create("сайт"); //новый запрос
req.Method = "POST";
req.Timeout = 100000;
req.ContentType = "application/x-www-form-urlencoded";
byte[] sentData = Encoding.GetEncoding(1251).GetBytes("запрос");
req.ContentLength = sentData.Length;
System.IO.Stream sendStream = reqg.GetRequestStream();
sendStream.Write(sentData, 0, sentData.Length);
sendStream.Close();
и, скажем, в textbox1 и textbox2 считать коды страниц после GET и после POST - они различаются, т.е. различается мой key.
Как я уже писал выше - скорей всего в печеньках дело. Если так - то их нужно передавать вместе с запросом.
|
|
|

13.05.2012, 14:52
|

Участник форума
Регистрация: 09.05.2009
Сообщения: 211
Провел на форуме: 5 дней 2 часа 21 минуту
|
|
Сообщение от Hack_ERR++
Как в C# можно поочередно отправить сначала GET, затем POST запрос, не разрывая соединения? HttpWebRequest или WebClient - не важно.
Что значит не разрывая соединения? Тебе нужно что бы сокет не дисконектился или что сессия сохранилась?
|
|
|
|
 |
|
| Опции темы |
Поиск в этой теме |
|
|
|
| Опции просмотра |
Линейный вид
|
Powered by: vBulletin Version 3.0.x Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
|