に私はこのようなvb.net非同期をhttpResponse機能があります。問題は「RESPは」HttpResponseMessage「普通」ではなくを返す必要があること、であるvb.netタスクHttpResponseMessage
Public Async Function getWebserviceResponse(ByVal sb As StringBuilder, ByVal baseUri As Uri, ByVal Method As String, ByVal User As String, ByVal Password As String) As Task(Of HttpResponseMessage)
Dim client As HttpClient = New HttpClient()
client.BaseAddress = baseUri
Dim authHeader As AuthenticationHeaderValue = New AuthenticationHeaderValue(
"Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
String.Format("{0}:{1}", User, Password))))
client.DefaultRequestHeaders.Authorization = authHeader
Dim content As New StringContent(sb.ToString, System.Text.Encoding.UTF8, "application/json")
Dim resp As HttpResponseMessage
Dim cancellationToken As CancellationToken
If Method = "Post" Then
resp = Await client.PostAsync(baseUri, content, cancellationToken)
ElseIf Method = "Put" Then
resp = Await client.PutAsync(baseUri, content, cancellationToken)
End If
Return resp
End Function
をタスク(HttpResponseMessageの)...
どのように私はこれを得ることができますか?ご協力いただきありがとうございます!
敬具 マーティン
大変ありがとうございました!私は今晩解決策を確認します。 – Martin
StreamReaderでgetWebserviceResponse()を呼び出す場合、次のエラーが表示されます。「コンテンツ」は「System.Threading.Tasks.Task(Of System.Net.Http.HttpResponseMessage)」のメンバーではありません。 私は、知っているのawaitイスト声明の中で行方不明:新規のStreamReaderとして\t 薄暗いmyStreamReader(。webserviceResponse.getWebserviceResponse(....)Content.ReadAsStreamAsync()結果。)私はのawaitと呼び出し文を向上させることができますどのように ?事前にどうもありがとうございました! – Martin
@Martin:ContentはTaskのプロパティではないからです。答えに示唆されているように、タスクを待つ*必要があります。また、結果を待つのではなく、「結果」を使用しないことをお勧めします。 – David