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

VB.NET下简化JSON格式POST请求实现方案咨询

VB.NET POST JSON 简化实现方案

当然有更简洁的实现方式,主要分两种方向:

1. 使用现代的 HttpClient(推荐)

HttpWebRequest 是较旧的API,.NET Framework 4.5及以上、.NET Core/.NET 5+都支持更简洁的HttpClient,它自带JSON序列化能力(.NET Core/.NET 5+默认包含相关组件,.NET Framework需手动安装System.Net.Http.Json NuGet包),能大幅减少代码量:

' 建议HttpClient全局单例使用,避免频繁创建释放资源
Dim httpClient As New HttpClient()
httpClient.DefaultRequestHeaders.Authorization = New System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "80mgkm6D60OtY16pzs93WoYmx2kzTgf3CELERMVg")

' 直接传入对象,自动完成JSON序列化并设置Content-Type
Dim response As HttpResponseMessage = Await httpClient.PostAsJsonAsync("myurl", MyClase)
response.EnsureSuccessStatusCode() ' 可选,用于确保请求执行成功

如果需要同步执行(非异步场景),可以用.Result替代异步调用:

Dim response As HttpResponseMessage = httpClient.PostAsJsonAsync("myurl", MyClase).Result

2. 优化原有 HttpWebRequest 代码

如果必须沿用HttpWebRequest,可以通过Using语句自动管理流资源,省去手动关闭的步骤,简化代码同时提升安全性:

Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create("myurl"), HttpWebRequest)
request.Method = "POST"
request.ContentType = "application/json"
request.Headers.Add("authorization", "Bearer 80mgkm6D60OtY16pzs93WoYmx2kzTgf3CELERMVg")

Dim postString As String = JsonConvert.SerializeObject(MyClase)
Using byteArray As Byte() = Encoding.UTF8.GetBytes(postString)
    request.ContentLength = byteArray.Length
    Using dataStream As Stream = request.GetRequestStream()
        dataStream.Write(byteArray, 0, byteArray.Length)
    End Using
End Using
' 此处可继续处理响应,例如调用request.GetResponse()

Using语句会自动调用资源的Dispose方法,替代手动Close操作,代码更简洁且能避免资源泄漏。

内容的提问来源于stack exchange,提问作者Bladimir Silva Toro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:45:42