
# HTTP请求
HTTP请求节点用于在工作流中调用外部服务的API接口，支持POST、GET请求。通过该节点，可以向指定的服务器地址发送请求，获取数据或提交信息，从而将工作流与外部系统打通，实现查询第三方平台的信息、向业务系统写入处理结果、调用外部模型服务等功能。
HTTP请求节点执行时，平台服务器根据配置的URL和请求方式，将输入参数拼装为HTTP请求并发送给目标服务器，等待响应后将返回数据自动映射为输出参数传递给下游节点。请求发出后等待响应，最长等待时间为50秒，超时将返回错误。
此外，HTTP请求节点还提供了异常忽略功能保证API服务异常情况下工作流正常执行。
HTTP请求节点的核心能力：
- 调用外部API：向支持HTTP协议的服务发送请求，获取或提交数据。
- 动态参数拼接：请求路径、请求参数、请求体中的内容均可以引用上游节点的输出，实现根据实际数据动态构建请求。
- 安全鉴权：支持API Key认证方式，密钥经加密存储，保障接口调用安全。
- 容错处理：提供异常忽略功能，即使请求失败也不会中断整个工作流。
在工作流中，HTTP请求节点、插件节点与MCP服务节点均可用于引入外部系统能力，您可以根据以下维度进行选型：
表1选型说明 
| 维度   | HTTP请求节点           | 插件节点                    | MCP节点                 |
|:---|:---|:---|:---|
| 适用场景 | 快速调用单个API接口，配置灵活。  | 将多个API封装为标准化插件，参数自动导入。  | 接入基于MCP协议的开源工具与生态。    |
| 配置方式 | 手动配置URL、参数结构、鉴权。   | 参数从插件元信息中自动导入。          | 参数从MCP服务定义中自动导入。      |
| 鉴权支持 | 仅支持API Key认证。      | 支持多种鉴权（API Key、OAuth等）。 | 支持标准的MCP协议鉴权。         |
| 灵活性  | 高（可自由配置任意第三方API）。  | 中（需先在组件库中创建并定义插件）。      | 中（需先安装并配置对应的MCP服务）。   |
| 复用性  | 低（每次使用均需重新在节点内配置）。 | 高（插件可在多处工作流中重复调用）。      | 高（MCP服务可在多处工作流中重复调用）。 |
   
选型建议：
- 如果您需要快速调用一个外部API接口且无需复用，推荐使用HTTP请求节点。
- 如果您需要将接口封装为供团队内多处引用的标准化工具，或需要复杂的鉴权方式（如OAuth），推荐使用插件节点。
- 如果您需要接入MCP协议的开源社区工具，推荐使用MCP服务节点。
#### 约束限制
- 当前仅支持POST、GET两种请求方法。
- 鉴权方式仅支持API Key认证，暂不支持OAuth等其他鉴权协议。
- 不支持流式接口。
- 域名参数需填写为固定值，不支持动态引用变量。详情请参考[常见问题]。
- HTTP请求节点调用的API响应时间不能超过50秒。
 
#### 添加节点
在工作流编辑页面，单击下方"添加节点"，选择"HTTP请求"节点。
图1添加HTTP请求节点   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790618.png "点击放大")
#### 配置HTTP请求节点
配置HTTP请求节点的详细参数说明如下：
#### API
用于指定请求的目标地址和方法，决定"向哪里发送什么类型的请求"。API配置包含请求方式、域名和路径：
- 请求方式：选择HTTP请求的方法。GET：从外部服务获取数据，适用于查询类操作。POST：向外部服务提交数据，适用于创建、更新类操作。
- 域名：请求目标服务器的域名地址（如https://api.example.com）。此参数为固定值，不支持动态引用变量。
- 路径：请求的具体接口路径（如v1/chat/completions）。支持动态引用变量------通过 {{变量名}} 的方式嵌入输入参数，在运行时自动替换为实际值。
 
#### 输入参数
输入参数用于定义可在路径或请求体中动态引用的变量，实现请求内容随上游数据变化而变化。
输入参数支持引用和输入两种传参方式。
- 引用：选择工作流中前置节点的输出值或全局配置中的记忆变量。适用于参数值需要随工作流运行动态变化的场景。
- 输入：自定义填写固定值。适用于参数值确定不变、但希望集中管理便于后续修改的场景。
- 描述：（可选）用于说明该输入参数的具体含义。
 
#### 请求参数
请求参数是附加在URL末尾的键值对（如 ?keyword=手机\&page=1），用于向服务器传递查询条件或筛选信息。
请求参数支持引用和输入两种传参方式。
- 引用：选择前置节点的输出值或全局配置中的记忆变量。适用于参数值由上游节点动态生成的场景。
- 输入：自定义填写固定值。适用于参数值固定不变的场景。
- 描述：（可选）用于说明该请求参数的具体含义。
 
#### 请求头
请求头用于携带请求的附加元信息，例如指定数据格式（Content-Type）、标识客户端类型（User-Agent）等。大多数API都要求在请求头中传递特定的字段。
请求头支持引用和输入两种传参方式。
- 引用：选择前置节点的输出值或全局配置中的记忆变量。
- 输入：自定义填写固定值。
- 描述：（可选）用于说明该请求头的具体含义。
 
#### 请求体
请求体是HTTP请求中携带的数据内容，通常在API请求中用于向服务器提交结构化数据。支持none和json两种配置模式：
- none：不携带请求体。通常用于GET请求，或不需要提交数据的场景。
- json：以json格式编写请求体。可通过{{变量名}}引用输入参数实现动态拼装。引用字符串类型的变量时，无需在变量外额外添加引号，系统会自动处理类型信息。
 
#### 鉴权
鉴权方式用于配置调用外部API时的身份认证信息，确保请求能够通过目标服务的安全验证。
- 无需鉴权：目标API不要求身份认证时选择此项，无需配置额外信息。
- API Key：通过API密钥进行身份认证。发起请求时，系统会自动将密钥附加到请求头或URL参数中。选择API Key鉴权时，需要配置以下参数：
  - 传入方式：指定密钥附加的位置。Header：将密钥放入请求头中传递。Query：将密钥作为URL查询参数传递。
  
  - 参数名称：API Key对应的字段名称（如Authorization、api-key等），由目标API指定。
  
  - 参数值：API Key的具体密钥值。
   
关于密钥加密：鼠标移动至"参数值"右侧的![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390231.png)上，可查看密钥的加密方式。平台默认使用**KMS加密 + 默认密钥** 方式对认证密钥进行加密存储，防止信息泄露。
- 加密机制：使用用户选择的密钥派生DEK进行加密，默认密钥为kms-agentarts/default。
- 费用说明：实例不收费，每月提供20,000次免费调用额度。解密时支持缓存，但敏感数据较多时可能超出免费次数。如需更换加密方式，具体请参考[更换密钥的加密方式](https://support.huaweicloud.com/lowcode-agentarts/agentarts_05_0288.html)。超出后按实际调用次数计费，详见[密码安全中心计费说明](https://support.huaweicloud.com/price-dew/dew_03_0001.html)。
 
#### 输出方式
HTTP请求执行完成后，系统会自动生成以下输出参数，供下游节点引用：
- body：HTTP响应的主体内容，即接口返回的实际数据。
- status_code：HTTP响应状态码，表示请求的执行结果。常见值：200表示成功，400表示请求格式错误，401表示认证失败，404表示接口地址不存在，500表示服务器内部错误。
- headers：HTTP响应的头信息，包含响应的元数据（如内容类型、编码方式等）。
- error_message：请求失败时返回的错误描述信息，帮助定位失败原因。请求成功时此字段为空。
 
#### 异常配置
在实际使用中，外部API可能因网络波动、服务不可用等原因偶尔请求失败。如果您不希望单个请求的失败导致整条工作流中断，可以开启异常忽略功能。
开启后，当该节点执行失败时，工作流不会中断，而是跳过此节点继续运行后续下游节点。如果下游节点引用了此节点的输出，则使用预先配置的默认输出内容代替实际返回值。
![](https://support.huaweicloud.com/lowcode-agentarts/public_sys-resources/note_3.0-zh-cn.png)
开启异常忽略时，建议同时为输出参数配置合理的默认值，避免下游节点因接收到空值而产生二次异常。
#### 相关操作
- 单击节点名称，可修改节点名称。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549909.png)图标，可对节点进行重命名、复制、删除或更换节点；也可以将节点连接到结束节点。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790412.png)图标，可对节点进行测试。
- 单击名称下面的节点说明，可修改节点的描述信息。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549911.png)图标，可查看文档信息。
 
 #### 常见问题
- **域名可以动态设置吗**
  不可以。域名参数仅支持固定值输入，不支持引用变量。如果您的业务需要根据不同条件调用不同域名的服务，建议通过条件分支节点拆分为多个HTTP请求节点，每个节点配置不同的固定域名。
  
- **请求路径中如何使用动态参数**
  在路径字段中使用 {{变量名}} 语法引用输入参数。例如，需要根据用户ID查询详情：
  1. 添加输入参数user_id，引用上游节点输出的用户ID。
  
  2. 路径设置为 /api/v1/users/{{user_id}}/profile。
  
  
  运行时，{{user_id}} 会被替换为实际的用户ID值。
  
- **如何判断请求是否成功**
  通过输出参数status_code判断。您可以在HTTP请求节点的下游添加条件分支节点，判断status_code是否等于200：
  - 等于200：走正常处理分支，引用body中的返回数据。
  
  - 不等于200：走异常处理分支，引用error_message查看具体错误原因。
   
- 接口要求的鉴权方式不是API Key怎么办 当前HTTP请求节点仅支持API Key认证。如果目标接口要求OAuth、Bearer Token等其他鉴权方式，可以尝试以下变通方案：
  - 手动添加请求头：部分鉴权方式（如Bearer Token）本质上是在请求头中传递固定格式的令牌。您可以在请求头配置中手动添加对应字段，例如参数名称设为Authorization，值设为具体的鉴权信息。
  
  - 使用插件或者MCP，如果目标API已经封装为插件或者MCP服务，可在工作流中添加插件、MCP。
   
 
