我如何在 VB.net 中使用类似的 VBA 代码? (

How can i use the similar VBA code in VB.net ? (

我有这个代码,它发出一个 http 请求,returns 结果在 VBA (Excel) 中。 有谁知道如何在 VB.net 中做类似的事情?

Sub GetRequest()

MYURL = "xxx"
Accesstoken = "xxx"

'Send Request and get JSON Response
Set xmlhttp = CreateObject("MSXML2.serverXMLHTTP")
xmlhttp.Open "GET", myurl, False
xmlhttp.setRequestHeader "Authorization", "Bearer " & AccessToken
xmlhttp.Send
JsonResponse = xmlhttp.responseText
Debug.Print xmlhttp.responseText

'Parse JSON
Set Json = JsonConverter.ParseJSON(JsonResponse)
Debug.Print xmlhttp.responseText

Set xmlhttp = Nothing


End Sub

感谢您的帮助,我是 vb.net 的新手,主要只使用 excel VBA

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

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

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

Imports System.Net
Imports System.Net.Http
Imports System.Threading.Tasks
Imports System.Text
'...
Private Async Function SendGet(url As String) As Task(Of String)
    Dim body = String.Empty
    Using client = New HttpClient
        Dim response = Await client.GetAsync(url)

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