【发布时间】:2017-10-30 11:21:38
【问题描述】:
我编写了一个简单的代码,可以将凭据发布到网站。我需要返回值,但我得到一个空值,结果为ArgumentException。我怎样才能正确地做到这一点
Imports System.Net
Imports System.Text
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim routerUri = "http://127.0.0.1/login.cgi"
Dim routerMethod = "POST"
Dim routerPostData = New Specialized.NameValueCollection From {
{"username", ""},
{"password", ""},
{"foo", "bar"}
}
Console.WriteLine(Encoding.UTF8.GetString(GetResponse(routerUri, routerMethod, routerPostData)))
End Sub
Function GetResponse(hUri As String, hMethod As String, rqParam As Specialized.NameValueCollection)
Dim uriUri As New Uri(hUri)
Dim rByte
Dim tTask = New Task(
Async Sub()
Dim task As Task(Of Byte()) = SendRequest(uriUri, hMethod, rqParam)
rByte = Await task
End Sub)
tTask.Start()
tTask.Wait()
Return rByte
End Function
Async Function SendRequest(hUri As Uri, hMethod As String, rqParam As Specialized.NameValueCollection) As Task(Of Byte())
Dim rByte As Byte()
Using client As New WebClient
rByte = Await client.UploadValuesTaskAsync(hUri, hMethod, rqParam)
End Using
Return rByte
End Function
End Class
【问题讨论】:
-
哪一行导致异常?
标签: vb.net lambda async-await task