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

VB.NET调用REST API获取Token失败求助(Visual Studio 2015)

问题分析与解决方案

核心问题

你的VB.NET代码中请求体构造方式错误,导致与Postman发送的请求格式不匹配;同时StatusCode=0通常表示请求未成功发送,可能伴随证书验证问题或网络拦截。

代码修正

1. 正确构造JSON请求体

Postman中你应该是发送JSON格式请求体,但原代码用AddParameter添加参数会默认以表单形式发送,而非JSON。修正代码如下:

首先定义登录请求的实体类(或直接用匿名类):

Public Class LoginRequest
    Public Property Username As String
    Public Property Password As String
End Class

然后修改请求发送代码:

Dim client = New RestClient("https://xxxxxxxx.com/IntegrationAPI_2/api/login")

' 解决HTTPS证书验证问题(如果服务器证书不被本地信任)
client.RemoteCertificateValidationCallback = Function(sender, cert, chain, sslPolicyErrors) True

Dim request2 = New RestRequest(Method.POST)
request2.RequestFormat = DataFormat.Json

' 构造JSON请求体
Dim loginPayload = New LoginRequest With {
    .Username = UserVar,
    .Password = PasswVar
}

' 将JSON对象添加到请求体(旧版RestSharp用AddBody,若用新版可替换为AddJsonBody)
request2.AddBody(loginPayload)

Dim response2 As RestResponse = client.Execute(request2)

' 输出调试信息排查问题
Console.WriteLine("状态码: " & response2.StatusCode)
Console.WriteLine("响应内容: " & response2.Content)
Console.WriteLine("错误信息: " & response2.ErrorMessage)

额外排查步骤

  • 对比请求头:确保VB.NET发送的Content-Type为application/json,设置RequestFormat = DataFormat.Json后RestSharp会自动添加该头。
  • 检查网络环境:确认应用没有被代理、防火墙拦截,可尝试在同一网络下测试。
  • 查看错误详情:重点看response2.ErrorMessage和response2.ErrorException,这能直接定位请求失败的原因(比如证书错误、参数为空等)。
  • 验证参数值:确认UserVar和PasswVar没有空值或格式错误,和Postman中使用的参数完全一致。
  • RestSharp版本适配:Visual Studio 2015建议使用RestSharp 106.x版本(兼容.NET Framework 4.x),新版本可能不支持旧框架。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:20:40