CI / Go Backend (push) Canceled after 0s
初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器 HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块 Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚 AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
using System.Net;
|
|
using System.Net.Http;
|
|
using PCL.Core.App;
|
|
|
|
namespace PCL.Network;
|
|
|
|
public static class RequestSigning
|
|
{
|
|
internal static string SecretCdnSign(string urlWithMark)
|
|
{
|
|
if (!urlWithMark.EndsWithF("{CDN}"))
|
|
return urlWithMark;
|
|
return urlWithMark.Replace("{CDN}", "").Replace(" ", "%20");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置 Headers 的 UA、Referer。
|
|
/// </summary>
|
|
internal static void SecretHeadersSign(string url, ref HttpRequestMessage client, bool useBrowserUserAgent = false,
|
|
string customUserAgent = "")
|
|
{
|
|
client.Version = HttpVersion.Version20;
|
|
client.VersionPolicy = HttpVersionPolicy.RequestVersionOrLower;
|
|
if (Uri.TryCreate(url, UriKind.Absolute, out var parsedUri)
|
|
&& (parsedUri.Host == "api.curseforge.com"
|
|
|| parsedUri.Host == "edge.forgecdn.net"
|
|
|| parsedUri.Host == "mediafilez.forgecdn.net"))
|
|
{
|
|
client.Headers.Add("x-api-key", Secrets.CurseForgeAPIKey);
|
|
}
|
|
var userAgent = !string.IsNullOrEmpty(customUserAgent)
|
|
? customUserAgent
|
|
: useBrowserUserAgent
|
|
? $"PCL2/{ModBase.upstreamVersion}.{ModBase.versionBranchCode} PCLCE/{ModBase.versionStandardCode} Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Edg/136.0.0.0"
|
|
: $"PCL2/{ModBase.upstreamVersion}.{ModBase.versionBranchCode} PCLCE/{ModBase.versionStandardCode}";
|
|
client.Headers.Add("User-Agent", userAgent);
|
|
}
|
|
} |