UiPath Documentation
maestro
latest
false
Maestro 用户指南
重要 :
新发布内容的本地化可能需要 1-2 周的时间才能完成。

HTTP 请求

HTTP 请求节点配置、身份验证和响应分支模式。

操作

向 URL 发送 HTTP 请求,并使响应可用于下游节点。

两个 HTTP 节点

Flow 提供两个 HTTP 节点。根据您希望处理身份验证的方式进行选择:

  • HTTP 请求( core.action.http ) - 内联配置方法、URL、标头、正文和身份验证。将其用于您自行管理凭据的任何外部 REST 端点,例如 API 密钥标头或持有者令牌。这是本页面记录的节点。
  • 托管 HTTP 请求( core.action.http.v2 ) - 通过 Integration Service 托管连接发出请求,因此身份验证由该连接处理,而不是内联配置。当您要对通过 Integration Service 连接的服务进行集中管理凭据时,请使用此选项。

配置参考

字段必填默认描述
Mode手动如何配置请求。选择手动以自己定义请求,或选择 API 定义以从 OpenAPI 或 Swagger 规范导入配置。
从 cURL 导入解析 cURL 命令并自动填充方法、URL、标头和正文。选择配置字段上方工具栏中的“cURL”按钮。
HTTP 方法GET请求的 HTTP 方法。支持的值为GETPOSTPUTPATCHDELETE
URL请求发送到的完整 URL,包括https://方案。支持变量表达式,例如https://api.example.com/users/$vars.userId
标头作为 HTTP 请求标头发送的键值对。标头名称和值支持变量表达式。
查询参数作为查询字符串附加到 URL 的键值对。名称和值支持变量表达式。
内容类型application/json请求正文的多用途互联网邮件扩展程序 (MIME) 类型。支持的值为application/jsonapplication/xmltext/plainapplication/x-www-form-urlencoded
正文空白POSTPUTPATCH请求的请求正文。直接在代码编辑器中输入值或使用变量表达式。
分支仅默认输出根据响应属性路由流程的响应分支。每个分支都有名称和条件表达式。
超时PT15M等待响应的最长时间,以国际标准化组织 (ISO) 8601 持续时间格式表示。
重试次数0请求失败时的重试次数。重试使用超时值作为退避间隔。

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

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

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

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

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

常见超时值:

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

凭据

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

手动身份验证

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

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

Integration Service 连接器

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

当您希望进行集中式凭据管理、自动令牌刷新,或多个流程共享相同的 API 凭据时,请使用 Integration Service 连接器。

备注:

Integration Service 连接器在 UiPath Automation Cloud 门户中配置。有关设置说明,请参阅 Integration Service 文档。

示例

示例 1 -- 基本 GET 请求

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

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

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

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

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

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

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

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

示例 2 -- 具有 JSON 正文的 POST 请求

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

节点已配置为“HTTP 方法”设为POSTURL设为https://api.example.com/ordersAuthorization标头的值为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 的响应遵循不同的路径,而无需单独的决策节点。

节点配置为“HTTP 方法”GETURLhttps://api.example.com/users/$vars.userId“分支”部分中有两个分支:条件为$vars.httpRequest1.output.statusCode === 200 Success和条件为Not Found$vars.httpRequest1.output.statusCode === 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 请求”节点作为调用任何 API 的通用工具。如果要调用的服务存在专用集成节点,请使用该节点。

在以下情况下使用 HTTP 请求...在以下情况下使用集成节点:
此 API 在节点面板中没有专用连接器存在服务的连接器,例如 Slack、Salesforce 或 HubSpot
您需要对标头、查询参数和正文格式进行完全控制您需要预构建的有类型的输入和输出,无需手动配置
您正在针对新的 API 或内部服务进行原型设计您需要通过 Integration Service 自动进行身份验证和令牌刷新
该 API 使用非标准身份验证方案您需要一个可维护的流程,如果 API 更改其合同,则该流程不会中断

经验法则:先在节点面板中搜索连接器。仅当您的目标服务不存在任何内容时,才会回退到 HTTP 请求。

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新