Vb.net добавить http-запрос в таймер
Я работаю в приложении VB winform, которому нужно отправить http-запрос на веб-сервис API, чтобы получить от него информацию
моя функция для получения данных работает нормально и получить данные в порядке
проблема в том, что мне нужно добавить эту функцию в таймер, чтобы продолжать получать данные в приложение
Я не могу заставить его работать таким образом когда я добавляю функцию в таймер он получает данные в первый раз а затем останавливается
Я должен перезапустить приложение, и тогда оно работает только в первый раз
и несколько раз это дает мне " задание было отменено"
Есть идеи, как заставить его работать
<pre> <pre> Public Async Function RunAsync() As Task Try Dim client As HttpClient = New HttpClient() 'client.Timeout = TimeSpan.FromMinutes(600) Dim Auth As New Auth() Auth.UserName = "UserName" Auth.Password = "Password" Dim wait As New WaitRequest() wait.ServiceId = 72 wait.TerminalKey = "" wait.SimCard = "" wait.Auth = Auth Dim response As HttpResponseMessage = Await client.PostAsJsonAsync("http://213.158.164.90/TopUpTest/api/getnew", wait) Dim content As HttpContent = response.Content 'TimeSpan.FromMinutes(30) ' Get contents of page as a String. Dim result As String = Await content.ReadAsStringAsync() 'client.Dispose() 'client.CancelPendingRequests() 'Convert the Json to Object 'Dim Invoice As List(Of Invoices) = Newtonsoft.Json.JsonConvert.DeserializeObject(Of List(Of Invoices))(result) ' If data exists, print a substring. If result IsNot Nothing And result.Length > 50 Then 'Timer1.Enabled = False 'MsgBox(result) frmMain.btnStartRecharge.BackColor = Color.Transparent Dim jsonString As String = result Dim dtJson As DataTable = ConvertJSONToDataTable(jsonString) frmMain.InvoiceDataGridView.DataSource = dtJson frmMain.lblMobRow.Text = frmMain.InvoiceDataGridView.RowCount If frmMain.InvoiceDataGridView.RowCount > 1 Then Dim Rcount As Int16 = frmMain.InvoiceDataGridView.RowCount frmMain.InvoiceDataGridView.Rows.RemoveAt(Rcount - 2) End If End If Catch ex As Exception ' Show the exception's message. frmMain.lblmessage.Text = ex.Message frmMain.btnStartRecharge.BackColor = Color.Red End Try End Function
Что я уже пробовал:
Я пытался
'client.Timeout = TimeSpan.FromMinutes(600)
'client.Dispose()
'client.CancelPendingRequests()