VB.NET : Как сделать веб-запрос асинхронным

#vb.net

#vb.net

Вопрос:

Я думаю, что это простой вопрос для вас, но я не понимаю других случаев веб-запросов, поэтому я спросил здесь:

Как я могу сделать этот веб-запрос асинхронным?

 Dim sBuffer As String
Dim oRequest As WebRequest = WebRequest.Create(url)
oRequest.Method = "GET"
Dim oResponse As WebResponse = oRequest.GetResponse()
Dim oStream As New StreamReader(oResponse.GetResponseStream())
sBuffer = oStream.ReadToEnd()
oStream.Close()
oResponse.Close()
Return sBuffer
  

Спасибо за вашу помощь!

С уважением, Flo

Ответ №1:

функцию с простым возвращаемым значением нельзя просто сделать асинхронной, вам нужно найти другой метод обработки возвращаемых данных. Я бы предложил использовать System.Net.WebClient, который является гораздо более простой оболочкой для того, что вы сделали выше, с этим классом асинхронность действительно проста.

 Dim wc As New WebClient
AddHandler wc.DownloadStringCompleted, AddressOf DownloadCompletedHander
wc.DownloadStringAsync(url)
  

 Public Shared Sub DownloadCompletedHander(ByVal sender As Object, ByVal e As DownloadStringCompletedEventArgs)
    If e.Cancelled = False AndAlso e.Error Is Nothing Then
        Dim myString As String = CStr(e.Result)
        'Do stuff with data
    End If

End Sub 
  

Я действительно не говорю VB.net но я думаю, что это правильно из-за некоторого поиска в Google

Комментарии:

1. как вы могли бы поместить сообщение и его параметр, используя это?