UiPath Documentation
maestro-automate
latest
false
Maestro Automate 用户指南

HTTP 请求

“HTTP 请求”节点向网址发送请求,包含其配置、身份验证和响应分支。

操作​

向 URL 发送 HTTP 请求,并使响应可供请求后的节点使用。

身份验证选项​

一个 HTTP 请求节点涵盖您在“身份验证”字段中选择的两种身份验证方式:

  • 手动身份验证: 方法、URL、标头、正文和凭据均内联配置。它适用于在节点中管理凭据(例如 API 密钥标头或持有者令牌)的任何外部具象状态传输 (REST) 端点。
  • 基于连接器的身份验证:请求通过连接,因此连接处理身份验证,并且不在节点中配置凭据。它适合对通过 Integration Service 连接的服务进行集中式凭据管理。

配置参考​

字段必填默认描述
导入或导出否无字段上方的菜单。“从 cURL 导入”会解析 cURL 命令并自动填充方法、URL、标头和正文。
身份验证是手动身份验证如何对请求进行身份验证。手动身份验证通过请求标头中的凭据。基于连接器的身份验证通过连接发送请求,如下所述。
方法是GET请求的 HTTP 方法。支持的值为GET 、 POST 、 PUT 、 PATCH和DELETE 。
URL是无请求发送到的完整 URL,包括https://方案。在“固定值”字段中,插入带有双大括号的值,例如https://api.example.com/users/{{ $vars.userId }} 。
标头否无作为 HTTP 请求标头发送的键值对。标头名称和值支持变量表达式。
查询参数否无作为查询字符串附加到 URL 的键值对。名称和值支持变量表达式。
内容类型否application/json请求正文的多用途互联网邮件扩展程序 (MIME) 类型。支持的值为application/json 、 application/xml 、 text/plain和application/x-www-form-urlencoded 。
正文否空白POST 、 PUT和PATCH请求的请求正文。直接在代码编辑器中输入值或使用变量表达式。
“分支”选项卡否仅默认输出根据响应属性路由工作流的响应分支。每个分支都有名称和条件表达式。
超时( “高级”选项卡)否PT15M等待响应的最长时间,以国际标准化组织 (ISO) 8601 持续时间格式表示。
重试次数( “高级”选项卡)否0请求失败时的重试次数。重试使用超时值作为退避间隔。

基于连接器的身份验证​

当身份验证为基于连接器的身份验证时,面板显示以下字段,而不是手动字段:

字段必填描述
连接器是发送请求的连接器,例如 Slack。
连接 (以连接器命名,例如Slack 连接)是要使用的连接。
方法是请求的 HTTP 方法。
基本 URL否连接器的基本 URL,以占位符显示,例如https://slack.com/api 。
路径否REST API 请求的端点路径。
标头否键值对,最多 20 个。连接器会自动添加自己的Authorization 、 Accept和Content-Type标头。
查询参数否键值对,最多 20 个。

编辑器会建议常见标头名称,例如Authorization 、 Content-Type 、 Accept和X-Api-Key等。对于查询参数,添加名称为page且值为2的参数会将请求发送到https://api.example.com/items?page=2 。

节点按顺序评估分支条件,然后选择第一个匹配项。如果没有分支匹配,工作流将遵循默认输出。

分支条件表达式使用与“决策”和“切换”节点相同的 JavaScript 语法:

$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code >= 400
$vars.httpRequest1.output.code >= 400

每个分支作为单独的输出句柄显示在画布上节点的右侧,旁边还有“默认”句柄。

常见超时值:

  • PT30S :30 秒。
  • PT5M :5 分钟。
  • PT15M :15 分钟。
  • PT1H :1 小时。

凭据​

您可以通过两种方式对请求进行身份验证。

手动身份验证​

直接在请求标头中传递凭据。对于 API 密钥身份验证,请添加一个标头,其名称为X-Api-Key ,并将值设置为您的密钥。对于持有者令牌身份验证,请添加具有类似于Bearer <your-token>值的Authorization标头。

将令牌和 API 密钥等敏感值存储在密码变量中,而不是对其进行硬编码。

基于连接器的身份验证​

在属性面板中选择一个连接。连接会自动将凭据注入到请求中,因此您无需自行管理标头。

连接适用于集中式凭据管理、自动令牌刷新以及多个工作流共享相同 API 凭据的情况。

备注:

Create a connection describes how to create one.

示例​

示例 1:基本 GET 请求​

从公共 API 中获取单个资源。

节点已配置为“方法”为GET , “URL”为https://jsonplaceholder.typicode.com/posts/1 。所有其他字段都保留为默认值。

响应可在下游脚本节点中找到:

const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;

return {
  title: body.title,
  userId: body.userId,
  status: status
};
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;

return {
  title: body.title,
  userId: body.userId,
  status: status
};

响应对象在$vars.httpRequest1.output可用,并包含三个字段:

  • $vars.httpRequest1.output.body :解析的响应正文。
  • $vars.httpRequest1.output.code :HTTP 状态代码,例如200 。
  • $vars.httpRequest1.output.headers :包含响应标头的对象。

示例 2:包含 JSON 正文的 POST 请求​

通过发送 JSON 有效负载创建新资源。

节点配置为“方法”设为POST , URL设为https://api.example.com/orders , Authorization标头的值为Bearer {{ $vars.apiToken }} , “内容类型”设为application/json 。正文:

{
  "product": "Widget",
  "quantity": 5,
  "customer_id": "cust_12345"
}
{
  "product": "Widget",
  "quantity": 5,
  "customer_id": "cust_12345"
}

已创建资源的 ID 可在下游节点中找到:

const orderId = $vars.httpRequest1.output.body.id;
return { orderId: orderId };
const orderId = $vars.httpRequest1.output.body.id;
return { orderId: orderId };

如果请求失败且您已连接错误句柄,则可在$vars.httpRequest1.error中找到错误详细信息:

// In a Script node connected to the error handle
const errorMessage = $vars.httpRequest1.error.message;
const errorStatus = $vars.httpRequest1.error.status;

return {
  failed: true,
  reason: errorMessage,
  httpStatus: errorStatus
};
// In a Script node connected to the error handle
const errorMessage = $vars.httpRequest1.error.message;
const errorStatus = $vars.httpRequest1.error.status;

return {
  failed: true,
  reason: errorMessage,
  httpStatus: errorStatus
};

错误对象包含:

  • code
  • message
  • detail
  • category
  • status

示例 3:路由响应分支​

响应分支让工作流根据 API 的响应遵循不同的路径,而无需单独的决策节点。

该节点配置了“方法” 、“URL”、 “分支”选项卡的GET 、 URL和https://api.example.com/users/{{ $vars.userId }} ,以及Success $vars.httpRequest1.output.code === 200 Not Found “ $vars.httpRequest1.output.code === 404 ”。

现在,该节点在画布上具有三个输出句柄:

  • “成功”:连接到处理用户数据的节点。
  • 未找到:连接到处理缺失用户的节点。
  • 默认:连接到任何其他状态代码的回退路径。

每个下游路径都会收到完整响应。例如,在成功分支上:

const user = $vars.httpRequest1.output.body;
return { name: user.name, email: user.email };
const user = $vars.httpRequest1.output.body;
return { name: user.name, email: user.email };

在 HTTP 请求和集成节点之间进行选择​

使用“HTTP 请求”节点作为调用任何 API 的通用工具。如果要调用的服务存在专用集成节点,请使用该节点。

在以下情况下使用 HTTP 请求...在以下情况下使用集成节点:
API 在“添加节点”面板中没有专用连接器A connector exists for the service, such as Slack, Salesforce, or HubSpot CRM
您需要对标头、查询参数和正文格式进行完全控制您需要预构建的有类型的输入和输出,无需手动配置
您正在针对新的 API 或内部服务进行原型设计您需要连接为您处理登录和令牌刷新
该 API 使用非标准身份验证方案您需要一个可维护的工作流,该工作流不会在 API 更改其合同时中断

通常,最好先在“添加节点”面板中搜索连接器,然后在目标服务的目标位置不存在时,再使用“HTTP 请求”进行回退。

后续步骤​

  • 脚本节点:转换和处理 HTTP 响应数据。
  • 决策节点:根据条件进行分支,作为响应分支的替代选项。
  • 变量和数据流: $vars 、表达式语法和变量作用域。
  • 社区:在 UiPath 论坛上与其他构建器一起提问和共享工作流。

此页面有帮助吗?

连接

需要帮助? 支持(opens in new window)

想要了解详细内容? UiPath Academy(opens in new window)

有问题? UiPath 论坛(opens in new window)

保持更新