Skip to content

Commit 79112fe

Browse files
committed
feat(getFinalURL): 在获取最终URL 的函数中添加 User-Agent 参数以优化请求
1 parent cf0f17a commit 79112fe

3 files changed

Lines changed: 10 additions & 5 deletions

File tree

internal/handler/emby.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ func (embyServerHandler *EmbyServerHandler) VideosHandler(ctx *gin.Context) {
241241
redirectURL := *mediasource.Path
242242
if config.HTTPStrm.FinalURL {
243243
logging.Debug("HTTPStrm 启用获取最终 URL,开始尝试获取最终 URL")
244-
if finalURL, err := getFinalURL(redirectURL); err != nil {
244+
if finalURL, err := getFinalURL(redirectURL, ctx.Request.UserAgent()); err != nil {
245245
logging.Warning("获取最终 URL 失败,使用原始 URL:", err)
246246
} else {
247247
redirectURL = finalURL

internal/handler/jellyfin.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ func (jellyfinHandler *JellyfinHandler) VideosHandler(ctx *gin.Context) {
213213
redirectURL := *mediasource.Path
214214
if config.HTTPStrm.FinalURL {
215215
logging.Debug("HTTPStrm 启用获取最终 URL,开始尝试获取最终 URL")
216-
if finalURL, err := getFinalURL(redirectURL); err != nil {
216+
if finalURL, err := getFinalURL(redirectURL, ctx.Request.UserAgent()); err != nil {
217217
logging.Warning("获取最终 URL 失败,使用原始 URL:", err)
218218
} else {
219219
redirectURL = finalURL

internal/handler/utils.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ var (
151151
)
152152

153153
// 获取URL的最终目标地址(自动跟踪重定向)
154-
func getFinalURL(rawURL string) (string, error) {
154+
func getFinalURL(rawURL string, ua string) (string, error) {
155155
startTime := time.Now()
156156
defer func() {
157157
logging.Debugf("获取 %s 最终URL耗时:%s", rawURL, time.Since(startTime))
@@ -187,8 +187,13 @@ func getFinalURL(rawURL string) (string, error) {
187187
visited[currentURL] = struct{}{}
188188
redirectChain = append(redirectChain, currentURL)
189189

190-
// 创建HEAD请求(更高效,只获取头部信息)
191-
resp, err := client.Head(currentURL)
190+
req, err := http.NewRequest(http.MethodHead, currentURL, nil) // 创建 HEAD 请求(更高效,只获取头部信息)
191+
if err != nil {
192+
return "", fmt.Errorf("创建请求失败: %w", err)
193+
}
194+
req.Header.Set("User-Agent", ua) // 设置 User-Agent 头部
195+
196+
resp, err := client.Do(req)
192197
if err != nil {
193198
return "", fmt.Errorf("发送 HTTP 请求失败:%w", err)
194199
}

0 commit comments

Comments
 (0)