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

向URL提交JSON数据时遇Error 401 Unauthorized,求排查方向

排查401 Unauthorized错误的要点
  • 认证凭据与域配置检查

    • 确认_user和_password的正确性:检查是否有拼写错误、大小写不一致,或者服务器端是否已启用该账号的API访问权限。
    • 修正NetworkCredential的domain参数:代码中传入的"https://DOMAIN"是错误格式,domain应为纯域名(如example.com),若服务器不需要域认证,可直接留空:
      webClient.Credentials = New System.Net.NetworkCredential(_user, _password)
      
  • 匹配服务器要求的认证方式

    • 若服务器采用Basic认证,仅设置NetworkCredential可能无效,需手动添加Authorization请求头:
      Dim authStr As String = $"{_user}:{_password}"
      Dim authBytes As Byte() = Encoding.UTF8.GetBytes(authStr)
      webClient.Headers("Authorization") = $"Basic {Convert.ToBase64String(authBytes)}"
      
    • 务必确认服务器文档指定的认证类型(如Bearer Token、OAuth2等),若为Token认证,需替换Authorization头为对应的格式。
  • 修复JSON数据的序列化错误

    • 手动拼接的JSON存在语法错误:第一行末尾缺少逗号,正确拼接应为:
      _json = "{ ""Dato"":""AAA"","
      
    • 代码中重复序列化JSON会导致格式错误:JsonConvert.SerializeObject(_json)会将已有的JSON字符串再次转义,服务器无法解析。应直接将拼接好的JSON转为字节:
      reqString = Encoding.UTF8.GetBytes(_json) ' 优先使用UTF-8编码,符合API通用规范
      
    • 建议改用类对象序列化生成JSON,避免手动拼接的语法错误:
      Public Class RequestData
          Public Property Dato As String
          Public Property Comm As List(Of CommItem)
      End Class
      
      Public Class CommItem
          Public Property Code As String
          Public Property Descr As String
      End Class
      
      ' 使用时:
      Dim reqObj As New RequestData With {
          .Dato = "AAA",
          .Comm = New List(Of CommItem) From {
              New CommItem With {.Code = "1", .Descr = "Des1"}
          }
      }
      Dim _json As String = JsonConvert.SerializeObject(reqObj)
      
  • 修正请求编码与冗余代码

    • 删除多余的reqString = System.Text.Encoding.Unicode.GetBytes(_json)代码,这行被后续代码覆盖,无实际作用。
    • 替换Encoding.Default为Encoding.UTF8,API接口通常要求UTF-8编码,避免编码不匹配导致的隐性错误。
  • 服务器端权限验证

    • 确认目标API端点https://url/api/UpdateData是否对当前账号开放更新权限,服务器端是否存在权限配置错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:08:15