python
from flask import Blueprint, Response, stream_with_context parameter = Blueprint('parameter', __name__, url_prefix='/parameter') @parameter.route('/demo', methods=['GET']) def parameter_test(): """ :return: """ def generate(): for i in range(1, 11): print(f'在{i}秒内执行了{i}') time.sleep(1) yield str({i: i}) return Response(stream_with_context(generate()), mimetype='text/event-stream')
JavaScript
fetch(`{{ stream_api }}`) .then(response => { console.log(response); if (!response.ok) { throw new Error('Network response was not ok'); } const stream_Reader = response.body.getReader(); console.log(stream_Reader) return stream_Reader; }) .then(reader => { console.log(reader); function read() { return reader.read() .then(({ done, value }) => { console.log(`done:${done}`); console.log(`value:${value}`); if (done) { console.log("Stream complete"); return; } // 处理接收到的数据 const data = new TextDecoder().decode(value, { stream: !done }); console.log(data); document.getElementById('output').innerText += data; // 继续读取流 return read(); }); } return read(); }) .catch(error => console.error('Error:', error));
请求结果
前端截图:
python后端:
python requests模块请求流式api:
import requests response = requests.get('http://10.118.12.65:8099/parameter/demo', stream=True) for stream_obj in response.iter_content(chunk_size=1024): if stream_obj: print(stream_obj.decode('utf-8'))
截图:
总结:
多学点吧,早点成为废物进行躺平