Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / асинхронный запрос HttpWebRequest / 10 сообщений из 10, страница 1 из 1
27.08.2017, 15:31
    #39511225
qlewerok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
есть рабочий код синхронного запроса на сервер. подскажите, как сделать асинхронный?
на vb6 делал, всё работает, на vb.net нет инфы толковой
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Dim textpisbma As String = "ewttауцауц135АУАУ!№;%:^"
        Dim postData As String = "hoz9in=" & Uri.EscapeDataString(hoz9in) & "&rab=" & rab & "&text=" & Uri.EscapeDataString(textpisbma)
        Dim request As HttpWebRequest
        Dim response As HttpWebResponse
        request = CType(WebRequest.Create("http://site/sender.php"), HttpWebRequest)
        request.Accept = "image/gif, image/x-xbitmap, image/jpeg, 
                           image/pjpeg, application/x-shockwave-flash,
                           application/vnd.ms-excel, 
                           application/vnd.ms-powerpoint,
                           application/msword, */*"

        request.Headers.Add("Accept-Language", "ru")
        request.ContentType = "application/x-www-form-urlencoded"
        request.Method = "POST"
        request.AllowAutoRedirect = False
        Dim requestStream As Stream
        requestStream = request.GetRequestStream()
        Dim postBytes As Byte() = System.Text.Encoding.GetEncoding(65001).GetBytes(postData)
        requestStream.Write(postBytes, 0, postBytes.Length)
        requestStream.Close()
...
Рейтинг: 0 / 0
27.08.2017, 16:39
    #39511237
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
qlewerok,

Толковая инфа .

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
28.08.2017, 06:19
    #39511361
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
...
Рейтинг: 0 / 0
29.08.2017, 16:48
    #39512337
qlewerok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
Сон Веры Павловны, как я понимаю:
Код: vbnet
1.
2.
3.
Dim result As IAsyncResult = _
            CType(request.BeginGetRequestStream(AddressOf GetRequestStreamCallback, request), _
            IAsyncResult)

- посылается запрос на сервер.
а GetRequestStreamCallback? отчет о том, что запрос послан? зачем он вообще нужен, если ответ запрашиваем отдельно
Код: vbnet
1.
2.
Dim response As HttpWebResponse = CType(request.EndGetResponse(asynchronousResult), _
           HttpWebResponse)

. запутался
...
Рейтинг: 0 / 0
29.08.2017, 18:45
    #39512419
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
qlewerok,
Вы сделали рабочий кусок? Работает?
Т.е. сначала делаете демку hello world, а потом думаете что и зачем.
...
Рейтинг: 0 / 0
29.08.2017, 20:21
    #39512438
qlewerok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
Petro123,

запустил вариант Сон Веры Павловны. работает в точности так же, как мой вариант, т.е. синхронно. на время отправки запроса всё зависает и отмирает только после получения ответа
...
Рейтинг: 0 / 0
30.08.2017, 05:21
    #39512561
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
Этот пример может чем-то помочь
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
        public async void Button1_Click(object sender, EventArgs e)
        {
            await Upload("XXXXXXXX");
        }

        async Task<string> Upload(string certificate)
        {
            using (var client = new WebClient())
            {
                client.Headers[HttpRequestHeader.ContentType] = "application/json";
                var data = "{ Content: \"" + certificate + "\" }";
                var url = ServerAddress + "/CurrentUserCert/Upload";
                return await client.UploadStringTaskAsync(url, "POST", data);
            }
        }

...
Рейтинг: 0 / 0
30.08.2017, 06:05
    #39512563
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
qlewerokPetro123,

запустил вариант Сон Веры Павловны. работает в точности так же, как мой вариант, т.е. синхронно. на время отправки запроса всё зависает и отмирает только после получения ответа
Прям один в один тот, что по ссылке на MSDN? Там, если что, используется
Код: c#
1.
private static ManualResetEvent allDone = new ManualResetEvent(false);


и в конце с комментарием для самых догадливых:
Код: c#
1.
2.
3.
4.
        // Keep the main thread from continuing while the asynchronous
        // operation completes. A real world application
        // could do something useful such as updating its user interface. 
        allDone.WaitOne();
...
Рейтинг: 0 / 0
30.08.2017, 22:37
    #39513057
qlewerok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
Сон Веры Павловны, да, убрал три лишние строчки, всё заработало, спасибо!)
...
Рейтинг: 0 / 0
30.08.2017, 23:06
    #39513064
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
асинхронный запрос HttpWebRequest
iMrTidyqlewerok,

Толковая инфа .
Я полагаю, что надо было перенести в http://www.sql.ru/forum/asp-net
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / асинхронный запрос HttpWebRequest / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]