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

Power Automate中通过HTTP从Outlook发送Base64遇请求错误求助

解决Power Automate中Outlook PDF附件Base64传输问题

核心问题分析

  • Get Attachment(V2)返回的contentBytes是二进制数据,直接放入HTTP查询参数会被自动URL编码,导致服务器识别为原始PDF内容而非Base64。
  • 重复使用base64()函数会造成二次编码,破坏正确的Base64格式。
  • 请求过长是因为Base64内容体积较大,直接放在URL参数里超出了长度限制。

分步解决方案

1. 正确生成Base64编码

  • 添加Get Attachment(V2)动作获取目标邮件的PDF附件。
  • 添加Compose动作,输入表达式:base64(body('Get_Attachment(V2)')?['contentBytes'])

    注意:仅对contentBytes二进制数据做一次Base64编码,不要嵌套多次base64()函数。

2. 避免URL编码,正确传递参数

不要将Base64内容放在HTTP请求的查询参数中,改为放在**请求体(Body)**里以JSON格式传递:

  • 配置HTTP动作的请求方法为POST(或服务器要求的对应方法)。
  • 在请求体中使用如下JSON结构:
    {
      "pdf_base64": "@{outputs('Compose')}"
    }
    
    这种方式下Power Automate不会对请求体内的Base64内容做URL编码,服务器可直接识别。

3. 处理大附件请求过长问题

如果PDF附件过大导致Base64内容超出请求体限制,可尝试两种方案:

  • 确认服务器是否支持分块上传,若支持则拆分Base64内容分多次请求发送。
  • 使用Power Automate Premium连接器中的Azure Blob Storage,先将附件上传至Blob存储,再把Blob的SAS共享访问URL发送给服务器,让服务器自行下载附件,避免直接传递大体积Base64。

验证步骤

  • 运行流后查看Compose动作的输出,确认开头为JVBERi0xLjYN(PDF标准Base64开头)。
  • 查看HTTP动作的请求体详情,确认Base64内容未被转义(无%PDF-1.6这类URL编码字符)。

内容的提问来源于stack exchange,提问作者Łukasz Paradowski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 16:52:05