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

Unity中使用WWWForm调用Azure Custom Vision接口报401未授权问题

解决Unity调用Azure Custom Vision出现401 Unauthorized的问题

我之前也碰到过一模一样的情况——Postman里请求完全正常,一移植到Unity就报401权限错误,大概率是请求头的添加方式出了问题,咱们一步步来排查解决:

1. 核心问题:错误的请求头添加方式

你现在是把Prediction-Key加到WWWForm的headers里,但Unity的WWWForm会自动生成表单相关的请求头(比如Content-Type),手动添加的头部往往不会被正确携带到最终请求中。正确的做法是直接给UnityWebRequest设置请求头:

修改后的代码如下:

WWWForm form = new WWWForm();
form.AddBinaryData("fileUpload", texture.EncodeToPNG());
UnityWebRequest req = UnityWebRequest.Post(link, form);
// 直接给UnityWebRequest添加请求头,而非WWWForm
req.SetRequestHeader("Prediction-Key", "xxxxxxxxxxxxxxxxxxxxxxxx");
yield return req.SendWebRequest();

// 建议加上错误日志,方便后续排查细节
if (req.result != UnityWebRequest.Result.Success)
{
    Debug.LogError($"请求失败:{req.error} | 响应详情:{req.downloadHandler.text}");
}

2. 其他辅助排查点

  • 核对密钥与请求地址:虽然Postman能正常运行,但还是要确认Unity里的Prediction-Key没有复制错误(比如多了空格、大小写不符),以及请求的link和Postman里的预测端点完全一致(别把训练API的端点当成预测端点了)。
  • 查看Azure返回的具体错误:通过req.downloadHandler.text可以获取Azure返回的详细错误描述,比如“Invalid prediction key”或者“Resource not found”,这能帮你更快定位问题根源。
  • Unity版本兼容性:如果是比较老旧的Unity版本,UnityWebRequest的某些行为可能存在差异,建议升级到LTS版本再测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:24:44