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

如何在OIC REST适配器中配置带JSON过滤器的USDA GET API调用?

解决OIC REST适配器调用USDA GET API的JSON过滤参数问题

核心问题分析

USDA的目标API要求将JSON格式的过滤条件直接作为filter查询参数传递,但OIC的REST适配器默认配置GET查询参数时,会自动对JSON中的特殊字符(如大括号、引号、斜杠)进行重复编码,导致API无法解析参数;而浏览器、Postman会自动处理正确的URL编码逻辑,所以直接在OIC中填写原始JSON会失败。

具体解决步骤

1. 手动生成正确URL编码的过滤字符串

先对原始过滤JSON做URL编码,比如你的示例JSON:

{"filters":[{"fieldName":"Report date","operatorType":"EQUAL","values":["01/10/2018"]}]}

编码后结果为:

%7B%22filters%22%3A%5B%7B%22fieldName%22%3A%22Report+date%22%2C%22operatorType%22%3A%22EQUAL%22%2C%22values%22%3A%5B%2201%2F10%2F2018%22%5D%7D%5D%7D

可通过浏览器控制台执行encodeURIComponent('你的JSON字符串')生成编码结果,无需依赖外部工具。

2. 配置OIC REST适配器的GET查询参数

  • 打开OIC REST适配器配置页,选定GET请求方法
  • 在「查询参数」模块添加filter参数,将上述编码后的字符串填入参数值
  • 保存配置后发起测试,此时OIC会直接传递正确编码的参数,USDA API可正常解析

3. 动态过滤条件的处理方案

如果需要动态修改过滤条件(如切换日期),不要写死编码字符串:

  • 在OIC集成流中,用赋值动作拼接生成原始JSON过滤对象
  • 调用OIC内置函数fn:encodeURIComponent()对整个JSON字符串编码
  • 将编码结果赋值给filter查询参数后,再发起GET请求

4. 验证请求有效性

在OIC监控日志中查看实际发送的请求URL,确认filter参数的编码格式与浏览器/Postman中的请求完全一致,以此排查是否存在编码错误。

关于POST请求体的说明

USDA该API的接口规范明确要求通过GET请求的查询参数接收过滤条件,POST请求体不符合其设计逻辑,因此会被拒绝,必须严格遵循API要求的请求方式传递参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:22:19