Microsoft Copilot Studio中HTTP响应赋值变量触发SystemError
在Microsoft Copilot Studio中处理HTTP响应赋值时触发SystemError的问题
问题详情
- 已在Copilot Studio创建主题,完成OAuth认证并成功获取有效access token,用该token在Postman中调用外部服务可正常获取响应
- 在Copilot Studio中,若将HTTP请求的响应赋值给变量(即使变量类型设为
any),会触发SystemError;不执行赋值操作时,请求本身不会失败 - 排查浏览器堆栈跟踪后,结合搜索结果推测:问题与响应压缩有关——使用cURL调用时,仅添加
--compressed参数才能避免返回二进制数据
解决方案
添加请求头指定压缩格式
在Copilot Studio的HTTP请求配置中,添加Accept-Encoding请求头,值设为gzip, deflate,告知服务端返回可被平台处理的压缩格式,触发自动解压缩逻辑。启用自动解压缩配置(若支持)
检查Copilot Studio的HTTP请求设置,确认是否存在「自动解压缩响应」类的开关,开启该选项让平台自动处理服务端返回的压缩数据。手动转换响应格式后赋值
若上述方法无效,可尝试在赋值前先将响应转换为字符串类型,例如使用表达式:string(outputs('HTTP请求')?['body'])再将转换后的结果赋值给目标变量。
原因分析
外部服务返回了压缩格式的响应(如gzip),但Copilot Studio默认未启用自动解压缩,导致直接拿到二进制原始数据。当尝试将二进制数据赋值给变量时,平台无法完成解析,进而触发SystemError。而Postman及添加--compressed参数的cURL会自动处理解压缩,因此能正常获取可读的文本响应。
内容的提问来源于stack exchange,提问作者Adam Jenkins
相关产品推荐
相关产品推荐

