You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Automate调用Azure Function返回BadRequest但函数实际返回200 Ok求助

根因分析

这个问题和Power Automate的HTTP连接器默认的内容解析规则直接相关,不属于编码BUG:

  • 你的自定义错误返回统一为JSON格式,且携带了正确的Content-Type: application/json响应头,所以所有错误场景下Flow都能正常解析响应
  • 当Azure Function处理合法Base64、返回明文文档内容时,没有显式指定Content-Type: text/plain响应头,HTTP连接器默认会将所有响应当成JSON格式解析,纯文本内容不符合JSON语法就会抛出无效JSON的错误
  • 你删掉Base64末尾==后请求进入错误逻辑,返回的是符合JSON格式的自定义错误,所以不会触发解析报错

解决方案

按优先级选择以下方案即可解决:

  • 调整Azure Function返回200状态码的响应逻辑,显式添加Content-Type: text/plain响应头,让HTTP连接器按照纯文本规则解析响应
  • 如果你需要同时兼容JSON错误返回和纯文本成功返回,直接关闭HTTP连接器的自动解析响应开关,后续可以通过body('HTTP动作名')直接获取原始响应内容,按需用json()或string()函数手动处理
  • 如果排查后发现是请求体构造的转义问题,可以在Flow中构造请求体时,直接使用json()函数包裹你拼接的JSON字符串,避免Base64特殊字符导致的转义异常
  • 临时解决方案:发送请求前将Base64字符串做URL编码,Azure Function侧先做URL解码再处理二进制内容,避开连接器对==字符的特殊处理逻辑

内容的提问来源于stack exchange,提问作者Martin Hatch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:15:03