Microsoft Copilot Studio 的 HttpRequest 在将响应分配给变量时失败

问题描述 投票:0回答:1

我在 Microsoft Copilot studio 中创建了一个主题,该主题向外部服务发出经过身份验证的 HTTP 请求。

身份验证是该流程中的第一步,我可以从我配置的 OAuth 提供程序检索有效的访问令牌。

当我使用在 copilot studio 中获得的访问令牌在邮递员中发出请求时,我能够成功调用该服务并查看响应。

我遇到的问题是,如果我尝试将响应分配给变量(以在稍后的提示中使用),则 copilot 会失败并显示“SystemError”。请求不会失败(因为它不会触发错误)除非我尝试将响应分配给变量

我刚刚在调试时将变量类型设置为

any
,并且仅当我分配变量时,它才会与 SystemError 一致失败。

我检查了浏览器中的堆栈跟踪并注意到了这一点:

我用谷歌搜索了这个错误,发现了一个可能完全不相关的github问题,这表明这可能与压缩有关。

当我在 cURL 中发出请求时,它会返回二进制数据,除非我使用

--compressed
标志,所以也许那里有什么东西?

httprequest microsoft-copilot
1个回答
0
投票

tl;博士 - 微软错误

我已经解决了这个问题。

我正在通信的服务器是:

  1. 始终返回 gzip 压缩的内容,无论我的 HttpRequest 标头中的
    accept-encoding
    如何(无赖)
  2. 还在其响应标头中返回
    content-encoding
    的正确
    gzip
    标头

Microsoft Copilot 未能遵守响应中的

content-encoding
标头。

我通过启动带有隧道的本地服务器来确定这一点,该隧道充当我的目标服务器的代理,但我的本地服务器没有压缩其响应,并且 copilot 能够与此本地代理服务器通信并保存并显示响应,而无需有问题。

© www.soinside.com 2019 - 2024. All rights reserved.