43 lines
1.2 KiB
Markdown
43 lines
1.2 KiB
Markdown
# 流式请求
|
|
|
|
通过连接池按需上传或下载正文。
|
|
|
|
## dever.http.StreamRequest
|
|
|
|
流式上传总量不受 body_bytes 限制;每块受 chunk_bytes 限制,取块受 read_ms 限制。
|
|
|
|
字段:
|
|
- `method`:请求方法
|
|
- `target`:路径及查询
|
|
- `headers`:不含协议引擎拥有的长度或分块头
|
|
- `body`:按背压取块的正文
|
|
|
|
## dever.http.StreamResponse
|
|
|
|
响应头到达即返回;正文按需取块,EOF 无事件,终止错误最多交付一次。
|
|
|
|
字段:
|
|
- `status`:响应状态
|
|
- `headers`:保留重复头
|
|
- `body`:消费或关闭前占用请求名额
|
|
|
|
## dever.http.StreamResponseResult
|
|
|
|
显式捕获响应头之前的配置、排队、传输或协议失败。
|
|
|
|
分支:
|
|
- `Read(response: StreamResponse)`:响应头与正文源
|
|
- `error Failed(message: Text)`:打开失败
|
|
|
|
## dever.http.open
|
|
|
|
发送普通 Request,返回流式响应。排队到响应头共用 timeout_ms,随后逐次读取用 read_ms。
|
|
|
|
## dever.http.openStream
|
|
|
|
按需发送异步正文;取消消费或提前关闭时,HTTP/1 关闭连接,HTTP/2 仅取消当前流。
|
|
|
|
## dever.http.readStreamResponse
|
|
|
|
把打开失败沿原选择类型传播;正文中的失败由消费函数处理。
|