本篇目录
一般http服务返回都是明文可见的字符、json等形式,其实底层还是返回的数据包,如果我们想要实现获取某个文件的指定起始位置的数据,可以让接口分段读取后进行返回,返回的结果可以通过Apifox查看hex的形式来查看(Postman貌似不能以hex格式查看),Fiddler抓包的返回结果也可以hex形式查看!

Fiddler可以在请求编辑里面直接构造请求后,在去查看会话详细–十六进制查看即可。

下面直接上改版的AI代码:
from flask import Flask, Response, make_response,requestimport osapp = Flask(__name__)def get_file_range(file_path, start, end):"""从文件中读取指定范围的字节。:param file_path: 文件路径:param start: 范围的起始字节(包含):param end: 范围的结束字节(包含):return: 文件内容的字节对象"""try:with open(file_path, 'rb') as file:file.seek(start)# 读取从start到end的字节,注意end+1是为了包含end字节return file.read(end - start + 1)except FileNotFoundError:return b''@app.route('/file/<filename>', methods=['GET'])def serve_file(filename):file_path = f'path/to/your/files/{filename}' # 修改为你的文件路径file_path = f'./{filename}'# 检查HTTP Range头部range_header = request.headers.get('Range')if range_header:# 解析Range头部,这里仅处理简单的"bytes=start-end"格式_, range_str = range_header.split('=')start, end = map(int, range_str.split('-'))# 计算文件的总大小total_size = os.path.getsize(file_path)# 检查范围是否有效if start >= total_size:return Response(status=416) # Range Not Satisfiableif end >= total_size:end = total_size - 1# 读取文件的部分内容file_content0 = get_file_range(file_path, start, end)#file_content = bytes(bytearray(b'