Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HttpWebRequest Post, Заглючивает после двух запросов продряд 
:(
    Опции темы
Most
Дата 17.11.2010, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 11.5.2009

Репутация: нет
Всего: нет



Здравствуйте. Помогите разобраться новичку. Вообщем написал я небольшую програмку, которая может авторизироваться на сайте и отправлять пользователям сообщения. Писал с помощью классов httpwebrequest httpwebresponse. Все в принципе работает... Есть только одно НО. после отправки двух сообщений подряд одному пользователю, прога заглючивает, и заглючивает именно когда пытаюсь получить ответ от сервера.
Код

HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();


<-- вот на этой строке. Вопрос собсвенно в том почему так происходит? Тоесть может мне стоит както перестроить алгоритм программы, или же на сервере система безопастности не пропускает какоето количество сообщений от одного пользователя за определенный интервал времени?


а вот код отправки сообщения
Код

 
public void send_message(string message, string title)
        {
            LoadProfile("Готовимся к запросу на страничку с сообщениями...", output);
            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http:\\url?&parameter1="+message+"&parameter2="+title);
            
            httpWebRequest.AllowAutoRedirect = true;
            httpWebRequest.Method = "POST";
            httpWebRequest.UseDefaultCredentials = true;
            httpWebRequest.CookieContainer = new CookieContainer();
            if (Cooks != null)
            {
                //Добавляем к нашему запросу ранее сохраненную сессию
                httpWebRequest.CookieContainer.Add(Cooks);
                
            }
            var buffer = Encoding.ASCII.GetBytes(message+title);
            httpWebRequest.ContentLength = 0;
            
            HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            LoadProfile("Получили ответ...", output);
            httpWebResponse.Cookies = httpWebRequest.CookieContainer.GetCookies(httpWebRequest.RequestUri);
            if (httpWebResponse.Cookies != null)
            {
                //Обновляем сессию
                Cooks.Add(httpWebResponse.Cookies);
            }
            Stream stream = httpWebResponse.GetResponseStream();
            StreamReader reader = new StreamReader(stream, Encoding.Default);
            
        }


Это сообщение отредактировал(а) Most - 17.11.2010, 02:48
PM MAIL   Вверх
i2m
Дата 17.11.2010, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 4.5.2010

Репутация: нет
Всего: 1



Хм вообще не пойму как это работает... 

Цитата

var buffer = Encoding.ASCII.GetBytes(message+title);

Толку от этого если это не используется даже?

Цитата

httpWebRequest.ContentLength = 0;

Как длинна запроса может быть 0? Длинна запроса должна быть buffer.Length

Цитата

Stream stream = httpWebResponse.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.Default);

Опять же если это дальше не используется то зачем оно вообще?

Где сама отправка запроса? Это вообще получается не POST, а тогда GET, в общем черт знает что нагородили вы smile Где закрытие потоков? 
Ваши потребности можно решить в пару строк, просто GET запросом, а если нужен еще ответ, то и его добавить.

Код

        public static string GetRequest(string url)
        {
            var request = (HttpWebRequest)WebRequest.Create(url);

            string answer;
            using (var response = (HttpWebResponse)request .GetResponse())
            {
                using (var sr = new StreamReader(response.GetResponseStream()))
                {
                    answer= sr.ReadToEnd();
                }
            }
            return answer;
        }

Куки только свои прикрутите и все.

PM MAIL   Вверх
Most
Дата 17.11.2010, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 11.5.2009

Репутация: нет
Всего: нет



спасибо, разобрался, в моем коде много лишнего, потому что делал в первый раз много чего тестировал прост не удалил не нужные строки. А дело было действительно в том что не закрыл потоки)))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0773 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.