fix(book): 修复文件下载中的重定向处理问题

- 添加 allow_redirects=False 参数避免自动重定向
- 实现手动处理 301、302、307、308 状态码的重定向逻辑
- 在重定向时设置 referer 头信息
- 添加重定向日志输出便于调试
- 在 Windows 环境配置文件中添加 aa 变量设置
This commit is contained in:
2026-05-13 10:44:30 +08:00
parent da8cea5e08
commit c64c9479a9
3 changed files with 6 additions and 2 deletions
+5 -2
View File
@@ -91,8 +91,11 @@ class BookService:
@retry(stop=stop_after_attempt(3))
def download_file(self, file_url: str, dir_name: str, file_name: str): # 下载文件
try:
response = self.session.get(file_url, stream=True)
response.raise_for_status()
response = self.session.get(file_url, stream=True, allow_redirects=False)
if response.status_code in (301, 302, 307, 308): # 非200状态码,重新请求
file_url = response.headers["location"]
print(f'跳转页面了:{file_url}')
response = self.session.get(file_url, headers={"referer": file_url}, stream=True)
print(f"下载状态码:{response.status_code} {file_url}")
print(dir_name + "/" + file_name)
content_type = response.headers.get('Content-Type', '')