当前位置: 首页> 健康> 养生 > 商务网站建设找哪家_如何做自媒体_百度下载并安装到桌面_网络推广公司是干什么

商务网站建设找哪家_如何做自媒体_百度下载并安装到桌面_网络推广公司是干什么

时间:2025/7/12 19:39:21来源:https://blog.csdn.net/Maybe_9527/article/details/146459501 浏览次数:0次
商务网站建设找哪家_如何做自媒体_百度下载并安装到桌面_网络推广公司是干什么

目录

  • 问题描述
  • 解决办法

问题描述

使用httpx的异步请求AsyncClient调用stream方法请求流式接口,如果接口返回内容比较慢(比如第一个字符返回用时5s),客户端主动关闭流式通道,导致当后端接口准备好数据后,返回报错“管道已关闭”

解决办法

调用stream方法增加参数timeout

    async def get_answer(self, job, index, text, callback):async with httpx.AsyncClient() as c:try:url = "流式接口地址api" headers = {'Authorization': g.TOKEN,'Clientid': g.CLIENT_SIGN,"Accept": "*/*","Cache-Control": "no-store"}params = {"question": text}# 重点 增加超时配置timeout_config = Timeout(5.0, read=10.0)  # 总超时设为5秒,但读取超时设为10秒async with c.stream('GET', url, headers=headers, params=params, timeout=timeout_config) as response:content_type = response.headers.get('content-type', '').lower()if 'text/event-stream' in content_type:     # 流式回答all_answer = ""async for data in EventSource(response).aiter_sse():if data:all_answer += data.data# 省略代码except Exception as e:print(e)
关键字:商务网站建设找哪家_如何做自媒体_百度下载并安装到桌面_网络推广公司是干什么

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: