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

ADF复制活动中如何使用带动态请求体的REST接口作为数据源?

ADF动态传递REST请求体并保存响应为JSON文件的实现方案

ADF复制活动的REST数据源默认会将字符串类型的动态内容识别为JSON字段值,自动添加引号、转义特殊字符,且默认会为请求体包裹JSON大括号,直接传入动态字符串就会出现你遇到的异常转义问题。

方案1:修复复制活动REST源请求体(更简洁,无需额外活动)

直接用@json()函数将Lookup输出的请求体内容转换为JSON对象类型,避免ADF自动转义:

  • 打开复制活动的REST源配置,找到请求体设置项
  • 动态内容填写为@json(activity('你的Lookup活动名称').output.你要取的请求体字段),示例如下:
    @json(activity('GetRequestBody').output.firstRow.request_body)
    
  • 不需要手动修改代码视图的自动生成大括号,@json()输出的JSON对象会直接填充到请求体结构中,不会出现多余转义或套括号问题
  • Sink端直接配置目标JSON/二进制数据集,即可将接口响应直接保存为JSON文件

方案2:Web活动+复制活动组合(适合复杂接口场景,兼容你已调试好的Web活动配置)

你已经验证Web活动可以正常调用接口,只需新增1个复制活动即可实现响应存文件:

  • 保留你已调试完成的Web活动,动态请求体无需修改,确保接口可以正常返回JSON响应
  • 新增复制活动,连接在Web活动之后
  • 复制活动源配置:
    • 源类型选择二进制
    • 选择「内联内容」作为输入
    • 内联内容的动态值填写为@activity('你的Web活动名称').output.Response
  • 复制活动Sink配置:
    • 选择你要存储文件位置对应的二进制/JSON数据集
    • 如果需要格式化JSON输出,可在JSON数据集的格式设置中选择「数组格式」或「每行一个JSON对象」
  • 运行后Web活动的响应内容会直接写入目标文件,无额外转义

常见问题排查

  • 如果Lookup输出的请求体本身包含预转义的引号,可先用replace()函数清理后再套@json(),示例:
    @json(replace(activity('GetRequestBody').output.firstRow.request_body, '\\"', '"'))
    
  • 若接口响应大小超过2MB,不要用Set Variable中转响应内容,直接用上述两个方案处理即可避免大小限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 02:57:05