You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB.NET中实现与下述Excel VBA一致的HTTP请求及JSON解析功能

VB.NET 等效实现方案

前置准备

首先在代码文件顶部引入所需命名空间:

Imports System.Net.Http
Imports System.Net.Http.Headers
Imports System.Text.Json

完整实现代码

和你原VBA逻辑完全对齐,采用同步请求模式:

' 建议全局静态声明HttpClient,避免重复实例化导致的资源浪费和端口占用
Private Shared ReadOnly _httpClient As New HttpClient()

Sub GetRequest()
    Dim MYURL As String = "xxx"
    Dim AccessToken As String = "xxx"

    Try
        ' 清空历史请求头避免冲突
        _httpClient.DefaultRequestHeaders.Clear()
        ' 添加Bearer认证头,对应VBA的setRequestHeader逻辑
        _httpClient.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", AccessToken)

        ' 发送同步GET请求,对应VBA的Open+Send同步调用逻辑
        Dim response As HttpResponseMessage = _httpClient.GetAsync(MYURL).Result
        ' 校验请求是否成功,可按需补充状态码判断逻辑
        response.EnsureSuccessStatusCode()
        ' 读取响应文本,对应VBA的xmlhttp.responseText
        Dim JsonResponse As String = response.Content.ReadAsStringAsync().Result
        Debug.WriteLine(JsonResponse)

        ' 解析JSON,对应VBA的JsonConverter.ParseJSON
        ' 动态解析方案:无需提前定义类,和VBA JsonConverter用法高度一致
        Dim Json As JsonNode = JsonNode.Parse(JsonResponse)
        ' 若要使用强类型解析,先定义和JSON结构匹配的类,再调用 JsonSerializer.Deserialize(Of 自定义类名)(JsonResponse)
        Debug.WriteLine(JsonResponse)

    Catch ex As Exception
        ' 按需补充异常处理逻辑
        Debug.WriteLine($"请求出错:{ex.Message}")
    End Try
End Sub

用法说明

  • 动态取JSON字段的方式和VBA完全一致:比如要取data下的name字段,直接写Json("data")("name").ToString即可
  • 如果需要更高性能和类型校验,建议预先定义和JSON结构对应的VB.NET类,使用强类型解析方案
  • 上述代码为了对齐你原VBA的同步逻辑使用了.Result,如果要改用性能更好的异步模式,将方法改为Async Function GetRequest() As Task,把所有.Result替换为Await即可
  • 不要每次调用方法都新建HttpClient实例,全局静态实例可以复用连接,大幅提升请求性能

内容的提问来源于stack exchange,提问作者azza452

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:09:01