如何在 VB.net 中的 Post 方法中从 body 中读取数据

How to read data from body in Post method in VB.net

我想创建一个 post 方法来使用 VB.Net 从 Authorize.Net webhook 发送的正文中读取数据,我是 VB.Net 的新手,有人可以帮忙吗如何在 Post 类型的方法中从正文中读取数据。

到 send/receive HTTP requests/responses,通常您会使用 HttpClient class (documentation)。特别是在这种情况下,您会:

  1. 调用 PostAsync 方法(documentation)提交请求
  2. 检查响应的 StatusCode (documentation) 以验证是否返回了成功的响应(大概是 OK - 200 状态)
  3. 如果返回成功响应,获取响应的内容(documentation)

这里有一个函数(未经测试)可以让您朝着正确的方向前进:

Imports System.Net
Imports System.Net.Http
Imports System.Threading.Tasks
Imports Newtonsoft.Json
Imports System.Text
'...
Private Async Function SendPost(url As String, data As Object) As Task(Of String)
    Dim body = String.Empty
    Using client = New HttpClient
        Dim content As New StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json")
        Dim response = Await client.PostAsync(url, content)

        If (response.StatusCode = HttpStatusCode.OK) Then
            body = Await response.Content.ReadAsStringAsync()
        End If
    End Using
    Return body
End Function