Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 08.12.2014
Сообщений: 6
1

Зависание формы при POST/get запросе

24.04.2015, 15:43. Показов 1933. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Задача
1. Авторизация на сайте
2. Получить JSON
3. Сериализация.
Успешно завершив выполнение алгоритмов замелит что первые два пункта занимают от 4 до 10 секунд, поэтому решил добавить анимированный элемент (на пример песчаные часы), намекающий что программа обрабатывает данные в данный момент.
И сразу же заметил неприятный момент
- анимация появляется лишь после обработки get/post и получения JSON. (то есть по завершению алгоритма) Все время обработки форма висит.
Думал мне поможет поточность в этом вопросе.
- программа загружает картинку. Анимация запускается лишь после выполнения алгоритма обработки get/post и получения JSON. Субъективно форма висит еще дольше.

Не ругайте, опыта мало. Помогите пожалуйста сделать чтоб не зависала форма.
Вот код:
VB.NET
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
 Private Sub Btn_Conect_Click(sender As Object, e As EventArgs) Handles Btn_Conect.Click
        ' Анимация загрузки
        PictureBox1.Image = My.Resources.load
     
        ' Авторизация
        Dim postdata As String = "j_username=ЛОГИН&j_password=Пароль)"
        Dim tempCookies As New CookieContainer
        Dim encoding As New UTF8Encoding
        Dim bytedata As Byte() = encoding.GetBytes(postdata)
        Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("http://сайт"), HttpWebRequest)
 
        postReq.Method = "POST"
        postReq.KeepAlive = True
        postReq.CookieContainer = tempCookies
        postReq.ContentType = "application/x-www-form-urlencoded"
        postReq.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"
        postReq.ContentLength = bytedata.Length
        Dim postreqststream As Stream = postReq.GetRequestStream()
        postreqststream.Write(bytedata, 0, bytedata.Length)
        postreqststream.Close()
        Dim postresponse As HttpWebResponse
        postresponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
        loginCookie = tempCookies
        postresponse.Close()
        postreqststream.Close()
 
        'По Get запросу получаем Json
        Dim GetReq As HttpWebRequest = DirectCast(WebRequest.Create(ЛИНК), HttpWebRequest)
        GetReq.CookieContainer = loginCookie
        Dim GetResponse As HttpWebResponse = DirectCast(GetReq.GetResponse(), HttpWebResponse)
        Dim reader = New StreamReader(GetResponse.GetResponseStream())
        JsonString = "{ ""GetTitr"": " & reader.ReadToEnd() & "}"
        GetResponse.Close()
        reader.Close()
End Sub
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2015, 15:43
Ответы с готовыми решениями:

Зависание формы при потере фокуса при выполнении в ней фоновых операций
Здравствуйте, коллеги. Возник следующий вопрос, который не получается решить самостоятельно....

Зависание формы при обработке каждого пиксела большой картинки
В тексте программа просчитывает картинку и для визуализации добавил код: Label2.Text =...

Экранирование символов в POST-запросе
Привет всем! В моей программе отправляются POST-запросы на сервер. Тело самого запроса содержит...

Как в POST запросе использовать параметры
Dim postData As String = "id=" & MainForm.clinicN & "&code=" & MainForm.CPU ' Данные для POST...

1
COM‐пропагандист
859 / 768 / 147
Регистрация: 18.12.2014
Сообщений: 2,195
Записей в блоге: 4
24.04.2015, 22:13 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Один из вариантов решения.
1. Показать окошко с анимацией.
2. Запустить получение данных из интернета и их обработку в другом потоке.
3. Когда данные будут готовы, то второй поток закрывает окошко с анимацией.
0
24.04.2015, 22:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2015, 22:13
Помогаю со студенческими работами здесь

Зависание формы при POST запросе
В делфи был компонент "Антифриз", а есть ли аналог его на C#? При отправке данных на сервер, форма...

Как предотвратить зависание формы при get запросе?
Делаю простой get запрос через TIdHTTP, но при этом зависает форма до того как придет ответ от...

Зависание при запросе к MySQL
При подключении к my sql через форму она подвисает как исправить? код:using System; using...

Зависание программы при запросе SQL
Доброго времени суток. Помогите пожалуйста, когда заношу новые данные в БД то программа зависает....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru