我正在开发一个应用程序,我使用 HttpClient 发送 POST 请求,但在发送 POST 请求时,它不断加载,甚至不返回任何响应或任何异常。问题是,当我在控制台应用程序中运行代码时,它可以工作,但是当我在 Windows 窗体应用程序(即 vb.net 应用程序)中运行相同的代码时,它不起作用。
Dim client As New HttpClient()
Dim request As New HttpRequestMessage(HttpMethod.Post, "https://api.paymentgateway-sandbox.com/virtualterminal/v1/orgs/1959874664/transactions/start")
request.Headers.Add("Authorization", "Bearer token#@$%^&")
Dim _content As New StringContent("{
""transactionData"": {
""transactionType"": ""CreditSale"",
""method"": ""urlPage"",
""submissionType"": ""automatic"",
""fields"": [
{
""id"": ""base_amount"",
""value"": ""10.00""
},
{
""id"": ""external_tran_id"",
""value"": ""64BFA675-D460-42E6-AFDE-73907B746A2D""
}
]
}
}", Nothing, "application/json")
request.Content = _content
Dim response = Await client.SendAsync(request)
response.EnsureSuccessStatusCode()
Dim res = response.Content.ReadAsStringAsync()
Console.WriteLine(res)
不确定它是否与解决方案相关,但是
Dim res = response.Content.ReadAsStringAsync()
应该是
Dim res = Await response.Content.ReadAsStringAsync()
与现有形式一样,
res
是一个Task(Of String)
。这也是一个很好的提醒,不要使用无类型的 Dim
语句。