Приложение зависает на GetRequestStream() после первого запросаC#

Место общения программистов C#
Ответить
Гость
 Приложение зависает на GetRequestStream() после первого запроса

Сообщение Гость »


Я погуглил и поискал здесь. Некоторые предполагают, что потоки не были близкими, другие полагают, что это ограничение количества подключений, когда для ServicePointManager.DefaultConnectionLimit установлено значение 1. Однако ничего из этого, похоже, не работает.

Моя проблема в том, что когда я использую это впервые, оно работает:

с использованием (varstream = request.GetRequestStream()) { данные var = Encoding.UTF8.GetBytes(post.ToString()); поток.Запись(данные, 0, данные.Длина); } Когда я использую его второй раз, он зависает. Да, я удаляю свою трансляцию, да, я прерываю и закрываю свои ответы и запросы.

Вот весь мой сегмент кода:
публичная строка get_hash(строка strUsername, строка strPassword, строка strUniverse) { // Запрос ВАР вар запрос = (HttpWebRequest)WebRequest.Create("http://website.com/"); // Ответ VAR вар ответ = (HttpWebResponse) request.GetResponse (); // переменная cookie вар cookie = новый CookieContainer (); ServicePointManager.DefaultConnectionLimit = 100; запрос.Таймаут = 10; запрос = (HttpWebRequest)WebRequest.Create("http://website.com/main/login"); request.AutomaticDecompression = DecompressionMethods.GZip | Методы декомпрессии.Дефлате; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch"); request.Headers.Add("Accept-Language", "en-US,en,q=0.8"); request.Headers.Add("Cache-Control", "max-age=0"); request.ContentType = "application/x-www-form-urlencoded"; request.Host = "website.com"; request.Headers.Add("Происхождение", "http://website.com"); request.Referer = "http://website.com/"; request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/33.0.1750.117 Safari/537.36"; запрос.Метод = "POST"; request.CookieContainer = новый CookieContainer(); request.CookieContainer.Add(cookie.GetCookies(request.RequestUri)); // УСТАНОВКА ДАННЫХ ПОЧТЫ ЗДЕСЬ вар сообщение = HttpUtility.ParseQueryString(string.Empty); post.Add("uni", strUni); post.Add("логин", strUsername); post.Add("pass", strPassword); используя (var поток = request.GetRequestStream()) { данные var = Encoding.UTF8.GetBytes(post.ToString()); поток.Запись(данные, 0, данные.Длина); поток.Закрыть(); поток.Dispose(); } ответ = (HttpWebResponse)request.GetResponse(); строка strSSID = «Ошибка»; если (response.StatusCode == HttpStatusCode.OK) { данные вар = string.Empty; используя (var sReader = новый StreamReader(response.GetResponseStream())) { данные = sReader.ReadToEnd(); sReader.Закрыть(); sReader.Dispose(); } строка strSSIDurl = response.ResponseUri.ToString(); int intSSIDurlStart = strSSIDurl.IndexOf("PHPSESSID=") + 10; стрSSID = strSSIDurl.Substring(intSSIDurlStart); } запрос.Прервать(); ответ.Закрыть(); ответ.Dispose(); вернуть стрSSID; }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»