当前位置: 首页 > java >正文

node-red的http-request组件调研三方接口请求参数为form-data解决方案

一、问题描述

node-red的http-request组件可以请求三方接口,但是如果该接口输入参数格式是form-data,则会传参失败。
在这里插入图片描述

二、解决方案

1、网上很多方案是用function构建一个form-data格式请求参数,测试下来均无效。

// 设置 form-data 格式的 payload
msg.payload = {"id": "6","token": "XXXXXXXXXXXXXXXXXXXXXX","snids": "34|35|36","playmode": "1","jiange": "1","fileids": "16","len": "0"
};// 设置 headers
msg.headers = {};
msg.headers["Content-Type"] = "multipart/form-data";return msg;

2、最终修改为如下成功传参并返回结果。

// 构造请求体
msg.payload = {id: '6',token: 'XXXXXXXXXXXXXXXXXXXXXX',snids: '34|35|36',playmode: '1',jiange: '1',fileids: '16',len: '0'
};
// 设置请求头
msg.headers = {'Content-Type': 'application/x-www-form-urlencoded'
};
return msg;

三、对比说明

HTTP 请求中(尤其是表单提交 POST 或 PUT),application/x-www-form-urlencoded 和 multipart/form-data 是两种主要的 Content-Type。以下是它们的核心区别:
在这里插入图片描述

application/x-www-form-urlencoded

1. 编码规则:

  • 数据被编码为 key=value 对,用 & 连接(如 name=John+Doe&email=john%40example.com)。
  • 空格转为 +,特殊字符(如 @, !, 中文字符)转为 %XX 形式的百分号编码。

2. 优势:

  • 简单通用,所有服务器都支持。
  • 适合小型文本数据(如登录表单)。

3. 劣势:

  • 编码后数据体积显著增大(如 @ 变成 %40)。
  • 无法直接传输二进制数据(如文件)。
multipart/form-data

1. 编码规则:

  • 数据被分成多个 Part(部分),每部分用随机生成的 boundary 分隔(如
    ------WebKitFormBoundary7MA4YWxkTrZu0gW)
  • 每个 Part 包含独立的 Content-Disposition 头部(指定字段名)、Content-Type(如文件类型),后跟原始数据。

2. 优势:

  • 支持文件上传(二进制数据保持原样,无额外编码开销)。
  • 适合传输大型数据(如图片、视频)。

3. 劣势:

  • 数据结构复杂,处理稍慢。
  • 请求体积略大(因包含边界标记和头部信息)。
http://www.xdnf.cn/news/13624.html

相关文章:

  • 数据分析入门初解
  • AbMole| Angiotensin II human(M6240;血管紧张素Ⅱ)
  • Vue.js 中 “require is not defined“
  • 大模型面试题:多模态处理多分辨率输入有哪些方法?
  • SpringMVC与Struts2对比教学
  • DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_学习计划日历示例(CalendarView01_20)
  • 【React】常用的状态管理库比对
  • 短剧系统开发:打造高效、创新的短视频娱乐平台 - 从0到1的完整解决方案
  • [行为型模式]观察者模式
  • 【苍穹外卖项目】Day01
  • Django(自用)
  • Redis:渐进式遍历
  • ArkUI-X构建Android平台AAR及使用
  • ROS2 工作空间中, CMakeLists.txt, setup.py和 package.xml的作用分别是?
  • 【编译原理】题目合集(一)
  • 初识MySQL · 事务 · 下
  • TCP/IP 网络编程 | Reactor事件处理模式
  • 像素跟踪 跟踪像素 算法总结
  • 【慧游鲁博】【12】小程序端 · 智能导览对接后端文物图片识别功能
  • WEB JWT
  • java复习 09
  • 【开源工具】:基于PyQt5的智能网络驱动器映射工具开发全流程(附源码)
  • WWDC 2025 开发者特辑 | 肘子的 Swift 周报 #088
  • 计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)—— 1. 摄像机几何
  • 2025最新软件测试八股文,查漏补缺(含答案+文档)
  • Spring Cloud Gateway 介绍
  • 离线部署openstack 2024.1 neutron
  • 离线部署openstack 2024.1 keystone
  • AI Agent 的架构与技术体系分析
  • 新能源知识库(40)一个省的综合电价由哪些因素决定?