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

Unity中如何发送HTTP/2请求?UnityWebRequest报错求解决方案

Unity 发送HTTP/2请求实现方案及报错解决

报错根因

Curl error 1: Received HTTP/0.9 when not allowed 是UnityWebRequest底层依赖的libcurl在HTTP/2握手阶段未收到符合协议规范的响应,被误判为HTTP/0.9返回导致的,常见触发场景:

  • Unity版本低于2021.3.20f1:内置libcurl版本过旧,未开启HTTP/2的ALPN协商支持,握手直接失败
  • 目标服务端HTTP/2配置异常:未正确开启h2协商、TLS证书不匹配,返回非标准响应
  • 协议版本参数配置错误:手动指定HTTP版本时传参错误,导致协商不匹配

实现方案

方案1:原生UnityWebRequest实现(无额外依赖,推荐)

前置要求:使用Unity 2021.3.20f1及以上LTS版本、2022.1+版本,低版本内置libcurl无完整HTTP/2支持

配置示例代码:

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class Http2Test : MonoBehaviour
{
    IEnumerator Start()
    {
        var request = UnityWebRequest.Get("https://你的HTTP2接口地址/api");
        // 指定HTTP/2协议版本
        request.version = HttpVersion.Version20;
        // 部分2021.x小版本无Version20枚举,可直接传字符串值:
        // request.version = "HTTP/2.0";
        
        yield return request.SendWebRequest();

        if (request.result == UnityWebRequest.Result.Success)
        {
            Debug.Log($"请求成功,响应:{request.downloadHandler.text}");
        }
        else
        {
            Debug.LogError($"请求失败:{request.error}");
        }
    }
}

如果配置后仍然报错,先在本地用命令行执行curl --http2 你的接口地址验证,如果curl同样请求失败,属于服务端HTTP/2配置问题,和Unity客户端无关。

方案2:第三方类库适配(兼容低版本Unity)

如果项目无法升级到满足要求的Unity版本,可使用成熟第三方类库实现,不依赖Unity内置的libcurl:

  • Best HTTP/2:Unity生态成熟的商业网络库,自带独立HTTP/2实现,兼容Unity 2018起全平台版本,支持HTTP/2、gRPC等协议,导入后直接设置HTTPManager.DefaultProtocol = SupportedProtocols.HTTP2即可发起请求
  • 原生HttpClient封装:Unity 2021+版本切换到.NET 6运行时、IL2CPP编译后端后,可直接使用System.Net.Http下的HttpClient发起HTTP/2请求,配置HttpClient.DefaultRequestVersion = HttpVersion.Version20即可,注意该方案不兼容WebGL平台,WebGL平台网络请求由浏览器接管。

排错注意事项

  • 不要在非HTTPS的明文HTTP地址上尝试请求HTTP/2:绝大多数服务端默认关闭明文HTTP/2(h2c)支持,直接请求会握手失败
  • WebGL平台无需手动指定HTTP版本:浏览器会自动和服务端协商最高支持的HTTP版本,手动指定版本反而可能导致请求异常
  • 部分低版本抓包工具(如旧版Charles、Fiddler)不支持HTTP/2协议解析,会篡改握手响应触发报错,测试时可先关闭系统代理排查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:12:09