在工作流中发送 HTTP 请求
创建将 HTTP 请求发送到外部 Web 服务器、API 端点和 URL 的工作流。例如,您可以创建一个工作流,用于将消息发送到消息传递服务,或者在项目管理应用中创建项。
您的 HTTP 请求可支持以下 HTTP 方法:
- Get - 发送请求以从服务器获取信息。
- Delete - 从服务器中删除资源。
- Head - 检索服务器的 HTTP 响应标头。
- Options - 检索服务器支持的选项和功能。
- Patch - 部分更新服务器上的资源。
- Put - 更新服务器上的资源。
- Post - 在服务器上创建或替换资源。
响应代码
Flow 发送您的 HTTP 请求后,它会等待(最多 30 秒)您的应用回复 HTTP 状态代码。如果 30 秒后 Flow 仍未收到您应用的回复,它将关闭与此应用的连接,并重新发送请求。
当 Flow 收到回复时,它会按以下方式处理代码:
状态代码 | Flow 的处理方式 |
---|---|
200 成功 | Flow 假设您的应用已处理 POST 请求。 |
202 成功 | Flow 假设您的应用已接受 POST 请求。 |
4XX 客户端错误 |
如果您的应用发送没有 Retry-After 标头的 429(请求过多)状态代码,那么 Flow 会以递增的时间间隔(最长 24 小时)重新发送 HTTP 请求 (POST)。 如果您的应用发送了带有 Retry-After 标头(指定等待时间)的 429(请求过多)状态代码,则在等待时间(以秒为单位)过去之后,Flow 会重新发送 HTTP 请求 (POST)。
如果您的应用发送任何其他 4XX 代码,则 Flow 会假定发生了故障并且不会重新发送 POST 请求。 |
5XX 服务器错误 | Flow 会以递增的时间间隔(最长 24 小时)重新发送 HTTP 请求 (POST)。 |
其他状态代码 | 如果您的应用返回的是此表中未介绍的代码,则 Shopify Plus 会假定出现故障并且不会重新发送 POST 请求。 |
安全
为确保您的 http 请求尽可能安全,我们建议您遵循以下最佳做法:
- 向 HTTP 操作 URL 配置字段的路径部分中的任何 Liquid 变量添加
| url_encode
。接收请求的 Web 服务器必须支持解码 URL。
例如,对 HTTP 操作 URL 配置字段的路径部分中的 Liquid 变量使用此格式:
https://example.com/customer/create?first_name={{ customer.firstName | url_encode }}&last_name={{ customer.lastName | url_encode }}
- 向 HTTP 操作正文配置字段的正文部分中使用的每个模板变量添加
| url_encode
或| json
。接收请求的 Web 服务器必须支持解码 URL 和 JSON 解码。
例如,在拥有 Content-Type application/x-www-form-urlencoded header
时使用此格式的 | url_encode
:
{
"first name": "{{customer.firstName | url_encode}}",
"last name": "{{customer.lastName | url_encode}}"
}
在拥有 Content-Type application/json header
时使用此格式的 | json
:
{
"first name": {{customer.firstName | json}},
"last name": {{customer.lastName | json}}
}
限制
请勿将此 HTTP 请求操作与使用 Flow 连接器创建的应用操作混淆。这两个功能都发送 HTTP 请求,但它们之间存在差异。例如,使用此操作发送的 HTTP 请求在其标头中不包含 action_run_id
。
此操作会处理 202 状态代码,就像请求已处理一样,这是一个已知问题。
发送 HTTP 请求
- 在工作流中,单击添加操作。
- 选择发送 HTTP 请求。
-
在 HTTP 方法部分,填写以下字段:
- 选择一种 HTTP 方法。
- 在 URL 字段中,输入服务器的 URL。
- 可选:如果接收您所传递的信息的 API 要求将信息添加到 URL,请执行以下操作: - 如果 API 需要标头中的信息,请在标头表中指定参数,以将它们传递到 URL。如果 API 允许将信息添加到标头或 URL 路径,请使用标头。此选项比将信息添加到 URL 路径更安全。
- 如果 API 需要 URL 路径中的信息,请将模板变量添加到 URL 的路径部分。URL 的路径部分位于第三个正斜杠之后。例如,在 URL
https://shopify.com/{{ order.id | url_encode }}
中,路径部分是{{ order.id | url_encode }}
。
在标头字段中,添加任何键值对。您还可以将模板变量添加到键或值。
在正文字段中,添加要发送到服务器的内容。发送消息时,包含相关客户、订单或产品的详细信息很有帮助。为此,您需要使用模板变量。
单击保存。