HTTP

借助 ArcGIS Velocity 中的 HTTP 输出,可以通过 POSTPUTDELETE 请求将要素和其他文本发送到 HTTP 端点。 对于发送到输出的每个输出要素,系统将发送一个请求。

示例

分析人员将 HTTP 输出配置为将要素以自定义 JSON 格式发送到指定的 Webhook。

用法说明

使用输出时,请谨记以下信息:

  • 在请求正文中发送 JSON 时,请使用 Text() Arcade 表达式将 JSON 括起来,以正确地格式化 JSON。
  • 使用 HTTP 输出时,了解数据的速度至关重要。 发送到输出的每个记录都将生成单独的请求。 由此可能会快速使 web 服务器的容量或速率限制设置过载。 将 HTTP 输出用于不经常发生的事件。
  • 使用 Open Authorization (OAuth) 身份验证时,以下内容适用:
    • HTTP 输出类型支持使用 OAuth 2.0 进行遵循客户端凭据或密码授予类型的 HTTP 端点的身份验证。 这些 OAuth 授权类型遵循的方案包括配置 HTTP 请求以获取访问令牌,以及可选地配置请求以使用刷新令牌来检索新的访问令牌。 在配置访问令牌请求期间,系统将提示您从 OAuth 授权服务器的响应中识别访问令牌和可选的刷新令牌以及有效期 JSON 密钥字段。 如果选择了有效期,则必须定义有效期类型(持续时间或时间戳)和单位。 要配置表示为字符串的有效期时间戳,请将有效期单位设置为其他,并通过添加有效期日期格式化字符串来指定日期格式。 如果指定的刷新令牌没有有效期,则如果主数据请求连续两次失败,源将尝试刷新令牌请求。
    • 如果识别了访问令牌请求中的刷新令牌,则必须使用 $refreshToken 全局变量来定义在刷新令牌请求的配置中将使用刷新令牌的位置。 可以选择在刷新令牌请求中使用 $accessToken 全局变量。 $refreshToken$accessToken 全局变量都可用于在 POST 正文URL 参数自定义标题参数中引用。
    • 当返回数据请求的配置时,必须使用 $accessToken 全局变量来定义将使用访问令牌的位置。 这通常是在带有值 Bearer $accessTokenAuthorization 自定义标题中。
    • 访问令牌可以存储为 JSON Web 令牌 (JWT)。 如果您使用 JWT 作为访问令牌,请打开使用 JWT 格式的选项。 Velocity 对令牌进行解码,如果负载包含 exp 声明,则此值将自动用作有效期。 exp 是访问令牌的有效期时间戳,表示方式为新纪元秒。
    • 通过 HTTP 输出,用户可以根据字段值动态填充 URL 或自定义标题值。 这允许用户构造特定于正在处理的每个记录的端点 URL、自定义标题和 URL 参数。

      用户可以使用以下格式之一在 URL自定义标题URL 参数中引用字段值:

      • $feature.fieldName 用于标准字段名称。
      • $feature['field name'] 用于字段名称包含空格的情况。

      要支持连接测试和验证,必须为 URL自定义标题URL 参数中使用的每个引用字段提供示例值。 在分析验证期间以及测试与目标系统的连接时,将使用这些值。 在运行时,Velocity 将每个占位符替换为当前记录中的相应属性值。

      假设您的分析包含名为 sensor_id 的字段。 您可以将输出 URL 定义为 https://yourAPIURL.com/$feature.sensor_id。 对于 sensor_id = 1234 的记录,输出解析为 https://yourAPIURL.com/1234。 相同的模式可用于自定义标题URL 参数

    • 发送请求正文中包含属性字段的 Arcade 表达式时,需要使用示例值来计算表达式。 使用示例值下拉菜单为 Arcade 表达式中引用的任何属性字段提供代表值。

参数

以下是输出的参数:

参数描述数据类型
URL

用于发送输出请求的 URL。

字符串

HTTP 方法

请求的 HTTP 方法。 选项包括 POSTPUTDELETE

字符串

POST 正文

JSON Arcade 表达式。

Arcade 表达式

内容类型

发出请求的内容类型标题。 选项包括以下内容:

  • 纯文本 - text/plain
  • JSON - application/json
  • CSV - text/csv
  • XML - text/xml

字符串

身份验证类型

(无身份验证)、基本身份验证或 OAuth 身份验证选项之间选择。

如果配置了基本身份验证选项,则会显示其他字段,提示您输入用户名和密码。

如果配置了 OAuth 身份验证选项,则会显示一个弹出窗口,允许您配置以下内容:

  • 访问令牌端点
  • HTTP 方法
  • URL 参数
  • 自定义标题

指定上述内容后,会测试连接。 您必须单击以识别 JSON 响应中的访问令牌(可能还包含刷新令牌和有效期值)。

如果指定了刷新令牌值,则会显示一个附加的弹出窗口,允许您配置以下内容:

  • 刷新令牌端点
  • HTTP 方法
  • URL 参数
  • 自定义标题

指定上述内容后,会测试连接。 您必须单击以识别 JSON 响应中的访问令牌和刷新令牌。

各种参数

URL 参数

要包含在发送到指定网站的 HTTP 请求 URL 中的可选 URL 参数。

虽然也可以在以上 URL 参数中设置参数,但是在此处作为单独参数输入的 URL 参数将覆盖 URL 参数中指定的任何匹配参数。

此参数中定义的 URL 参数始终采用 URL 编码。

键值对

自定义标题

发送到指定网站的 HTTP 请求中将包含可选的自定义标题。 例如,自定义标题可用于指定第三方 API 密钥或身份验证标题。

键值对

其他日志记录

可以选择对原始 HTTP 请求和 Velocity 发出的请求打开日志记录。

注:

此参数应仅在进行故障排除时打开,并在故障排除完成后关闭。 如果在打开参数后启动分析,调试级别日志即会出现在分析日志页面上。 如有必要,请联系 Esri 技术 支持 以获得故障排除方面的帮助。

布尔

示例值

允许用户为 $feature.fieldName$feature['fieldName'] 引用的每个字段定义示例数据。 连接测试和验证需要这些值。

键值对

注意事项和限制

使用输出时应考虑以下问题:

  • 使用 OAuth 身份验证选项时,请记住以下几点:
    • 在创建输出时,系统会向授权服务器和相关数据端点发送多次请求。 一些 API 对某些请求实施限速,这可能会影响输出创建。
    • 出于安全原因,在编辑身份验证参数时,必须重新配置访问令牌请求 POST 正文
  • 必须可以通过 Internet 从外部访问 web 服务器。