UnityWebRequest.Post请求报Curl error 1错误如何解决
问题成因
Curl error 1: Received HTTP/0.9 when not allowed报错的核心触发逻辑是:Unity底层使用libcurl库发起HTTP请求,libcurl 7.66.0及以上版本默认拒绝接收HTTP/0.9格式的响应,而你请求的接口返回内容不符合现代HTTP协议规范,被客户端直接拦截。
常见触发场景:
- 后端接口没有返回标准HTTP格式响应:缺少
HTTP/1.x 200 OK这类状态行、没有标准响应头,直接输出了纯文本内容 - 端口映射/服务部署错误:48080端口实际运行的不是HTTP服务,是其他TCP协议服务,返回的是原始二进制/纯文本字节流,无法被HTTP解析器识别
- 后端逻辑bug:在输出HTTP响应头之前提前打印了调试文本、报错信息,导致响应开头不符合HTTP格式要求
- 小概率场景:客户端没有配置明文HTTP访问权限,请求被系统拦截后返回的异常内容被误识别为HTTP/0.9响应
解决方案
按排查优先级从高到低处理:
- 优先修复后端服务问题(生产环境唯一推荐方案)
先直接用命令行curl测试接口返回内容,执行命令:
查看返回结果的第一行是否为标准HTTP状态行,如果不是,直接修正后端逻辑:确保接口返回符合HTTP/1.1及以上版本的规范,包含正确的状态行、响应头,再输出响应体;同时确认48080端口确实对外提供HTTP服务,没有端口配置错误。curl -v http://193.16.117.212:48080/login -d "username=test&password=test" - 测试环境临时绕过方案(禁止在生产环境使用)
如果短时间无法调整后端,可以手动修改libcurl配置放开HTTP/0.9限制:- 代码层面直接配置curl参数,修改后的请求代码如下:
using System; using System.Collections; using System.Runtime.InteropServices; using UnityEngine; using UnityEngine.Networking; public class LoginTest : MonoBehaviour { [DllImport("libcurl")] private static extern int curl_easy_setopt(IntPtr curlHandle, int option, long value); // libcurl中HTTP0.9允许开关的配置ID private const int CURLOPT_HTTP09_ALLOWED = 288; IEnumerator Login(string userName, string password) { WWWForm form = new WWWForm(); form.AddField("username", userName); form.AddField("password", password); using (UnityWebRequest webRequest = UnityWebRequest.Post("http://193.16.117.212:48080/login", form)) { // 放开HTTP/0.9响应限制 curl_easy_setopt(webRequest.GetNativeRequestHandle(), CURLOPT_HTTP09_ALLOWED, 1); yield return webRequest.SendWebRequest(); if (webRequest.result != UnityWebRequest.Result.Success) { Debug.LogError($"请求失败: {webRequest.error}"); } else { Debug.Log($"请求成功,返回内容: {webRequest.downloadHandler.text}"); } } } }- 部分Unity版本可直接在Player Settings的Scripting Define Symbols中添加
CURLOPT_HTTP09_ALLOWED宏,全局放开该限制。
- 明文权限配置检查
- Android平台:在Player Settings中把Internet Access设置为Require,同时配置网络安全规则放开目标IP的明文HTTP访问权限
- iOS平台:在Info.plist中配置NSAppTransportSecurity,要么开启全局任意加载,要么单独添加该IP的明文访问例外
内容的提问来源于stack exchange,提问作者Asmar Ali
相关产品推荐
相关产品推荐

