1fichier.com HTTP Basic Auth直连下载401未授权问题实现方案
1fichier Basic Authentication直连下载401问题解决
已验证的踩坑点
- 第一份手动设置请求头的代码完全不符合HTTP Basic Auth格式要求:直接将明文的
账号:密码字符串拼在Basic标识后,没有对拼接后的内容做Base64编码,服务器解析凭证时直接判定格式非法。 - 第二份分段编码的代码偏离了RFC 7617定义的Basic Auth标准流程:对账号、密码分别单独做Base64编码后再用冒号拼接,实际发送的凭证内容是
Base64(账号):Base64(密码),而非服务器要求的Base64(账号:密码),解码后得到的字符串完全和真实凭证不匹配。 - 遗漏了1fichier的专属适配规则:Basic Auth场景下作为账号的邮箱字符串,必须将原本的
@符号替换为%,否则服务器识别的账号和实际注册账号不一致。 - 没有适配服务器的认证触发逻辑:URL后必须追加
&auth=1参数,服务器才会主动校验请求携带的认证信息,否则会返回无登录态的免费下载页面而非认证后的直连流。
正确实现逻辑
完全对齐官方wget示例的参数规则,按标准流程构造请求:
- 预处理账号:将邮箱中的
@替换为% - 按规范构造凭证:将预处理后的账号、密码用冒号拼接为完整字符串,统一用UTF-8转字节流后做Base64编码
- 构造请求URL:在原文件直链后追加
&auth=1参数 - 设置请求头:携带格式为
Basic <Base64编码后的完整凭证>的Authorization字段 - 适配证书校验:跳过客户端证书校验逻辑,和wget的
--no-check-certificate效果对齐
可直接运行的Unity实现参考:
using UnityEngine.Networking; using System.Text; using System; // 自定义证书处理器,跳过证书校验 public class SkipCertificateCheckHandler : CertificateHandler { protected override bool ValidateCertificate(byte[] certificateData) => true; } // 协程内发起下载请求的逻辑 IEnumerator Start1fichierDownload() { // 邮箱中的@替换为%,符合1fichier认证规则 string user = "myemail%domain.com"; string password = "your_login_password"; // 按标准构造Base64凭证 string rawCredential = $"{user}:{password}"; string base64Auth = Convert.ToBase64String(Encoding.UTF8.GetBytes(rawCredential)); // 带auth=1参数的目标下载链接 string targetUrl = "https://1fichier.com/?cs6czd22c8odod74dal2&auth=1"; UnityWebRequest request = UnityWebRequest.Get(targetUrl); request.SetRequestHeader("Authorization", $"Basic {base64Auth}"); request.certificateHandler = new SkipCertificateCheckHandler(); yield return request.SendWebRequest(); if (request.result is UnityWebRequest.Result.ConnectionError or UnityWebRequest.Result.ProtocolError) { Debug.Log($"请求失败:{request.error}"); yield break; } Debug.Log("认证通过,开始接收下载数据流"); }
注意事项
- 不需要等到服务器返回401认证挑战头再携带凭证,带
&auth=1参数的请求第一次发出时就会触发全量校验,直接在初始请求中携带正确凭证即可(对应wget的--auth-no-challenge参数效果) - 不要在URL中直接拼接
email:password@格式的凭证信息,UnityWebRequest会对URL中的特殊字符做自动转义,反而会导致凭证识别错误,统一放在Authorization请求头中传递更稳定
内容的提问来源于stack exchange,提问作者CS_Studios
相关产品推荐
相关产品推荐

