ArcGIS Velocity 中的“HTTP 轮询器”源类型会将 HTTP 请求发送到指定的 URL。 由此将采集在 web 浏览器中通过浏览至同一 URL 即可检索到的数据。
示例
每分钟都会从 API 中加载更新的传感器值。
用法说明
使用源时,请谨记以下内容:
- 源按照配置向导的源轮询间隔步骤中定义的速率轮询 HTTP 端点以加载数据。
- 设置轮询间隔后,轮询将以规常规时间间隔进行,而不依据源的开始时间。 例如,如果将源设置为每 5 分钟轮询一次数据,并且在 8:03 a.m. 开始,则第一个数据请求将在 8:05 a.m. 发生,下一个在 8:10 a.m. 发生,依此类推。
- 指定源轮询间隔值时,请格外小心。 确保要轮询的 HTTP 端点能够在指定的轮询间隔内返回响应。 建议您使用与源配置中应用的相同请求来测试对网站的请求的响应时间。 请勿将轮询间隔设置为比网站请求的通常响应时间更短。
- POST 正文、URL 参数和自定义标头参数支持源全局参数。 默认情况下,源全局变量将转换为新纪元时间(自 1970 年 1 月 1 日 (UTC) 以来的毫秒数)。 可以将源全局变量转换为新纪元秒(自 1970 年 1 月 1 日以来的秒数)和字符串日期时间格式。 源在启动或重新启动后首次运行的时间,$feed.FeedLastScheduledStartTime 是 $feed.FeedScheduledStartTime 减去源轮询间隔值。 这使得源可以接收从调整后的开始时间到当前时间的数据,从而防止获取大量历史数据。 下面是源分析变量及其表示的时间:
- $feed.FeedStartTime - 源的开始时间。
- $feed.FeedScheduledStartTime - 计划的源下次循环的时间。
- $feed.FeedLastScheduledStartTime - 计划的源上次循环的时间。
- Velocity 订阅许可级别对源可以使用的数据量有限制,具体如下所述。 如果源超过许可级别的使用限制,则会向日志写入一条消息,并向用户发送一封电子邮件,通知已达到限制。 如果数据使用量超限的持续时间超过一个小时,源会停止。 如有必要,请与您的 Esri 代表或 Esri 技术 支持 合作,以了解支持您的工作流的 Velocity 许可级别。 许可级别如下所示:
- Standard - 以 25 KB/秒的速度使用和处理数据(每秒约 100 个事件)。
- Advanced - 以 250 KB/秒的速度使用和处理数据(每秒约 1,000 个事件)。
- Dedicated - 以 2,500 KB/秒的速度使用和处理数据(每秒约 10,000 个事件)。
- 配置源连接参数后,请参阅配置输入数据了解如何定义方案和关键字段。
Oauth 身份验证
HTTP 轮询器源类型支持使用 OAuth 2.0 进行遵循客户端凭据或密码授予类型的 HTTP 端点的身份验证。 这些 OAuth 授权类型遵循的方案包括配置 HTTP 请求以获取访问令牌,以及可选地配置请求以使用刷新令牌来检索新的访问令牌。 这些数据请求是通常配置为任何 HTTP 轮询器源类型的一部分的数据请求的补充。
在配置访问令牌请求期间,系统将提示您从 OAuth 授权服务器的响应中识别访问令牌和可选的刷新令牌以及有效期 JSON 密钥字段。 如果选择了有效期,则必须定义有效期类型(持续时间或时间戳)和单位。 要配置表示为字符串的有效期时间戳,请将有效期单位设置为其他,并通过添加有效期日期格式化字符串来指定日期格式。 如果指定的刷新令牌字段没有过期,则如果主数据请求连续两次失败,源将尝试刷新令牌请求。
如果识别了访问令牌请求中的刷新令牌,则必须使用全局变量 $refreshToken 来定义在刷新令牌请求的配置中将使用刷新令牌的位置。 可以在刷新令牌请求中使用 $accessToken 全局变量。 $refreshToken 和 $accessToken 全局变量都可用于在 POST 正文、URL 参数和自定义标题中引用。
当返回数据请求的配置时,必须使用 $accessToken 全局变量来定义将使用访问令牌的位置。 这通常是在带有值 Bearer $accessToken 的 Authorization 自定义标题中。 $accessToken 也可用于 POST 正文、URL 参数以及 URL(例如,https://<company.domain>/$accessToken/<method>?<url params>)。
在运行期间,配置了 OAuth 身份验证的源将管理访问令牌并处理相应的数据检索错误。 例如,如果定义了刷新令牌请求和有效期,则源将使用最初与访问令牌请求一起检索的刷新令牌来检索新令牌(如果令牌已过期)。
在使用 OAuth 创作源时,请注意以下内容:
- 在创作过程中会发生对授权服务器和关联的数据端点的多次请求。 一些 API 对某些请求实施限速,这可能会影响源的创作。
- 出于安全原因,在编辑身份验证参数时,必须重新配置访问令牌并刷新令牌请求 POST 主体。
- 访问可以存储为 JSON Web 令牌 (JWT)。 如果您使用 JWT 作为访问令牌,请打开使用 JWT 格式选项。 Velocity 对令牌进行解码,如果负载包含 exp 声明,则此值将自动用作有效期。 exp 是访问令牌的有效期时间戳,表示方式为新纪元秒。
参数
以下是源的参数:
参数 | 描述 | 数据类型 |
---|---|---|
URL | 外部可访问 HTTP 端点的完整 URL。 此参数支持 $accessToken 全局变量。 | 字符串 |
HTTP 方法 | HTTP 方法指定用于 HTTP 端点的 HTTP 方法,即 GET 或 POST。 如果选择 POST,则可以指定消息正文。 | 字符串 |
POST 正文 | 发送 POST HTTP 请求时要包含的消息正文。 由此可在 x-www-form-urlencoded 与其他通用文本内容类型之间提供选择。 它还用于设置 Content-type 标题。 仅当 HTTP 方法参数设置为 POST 时需使用此参数。 此参数支持源和 $accessToken 全局变量。 | 字符串 |
身份验证 | 身份验证指定用于访问 HTTP 端点的身份验证的类型。 这些选项包括无、基础、证书和 OAuth。 | 字符串 |
用户名 | 用于访问 HTTP 端点的用户名。 仅当身份验证参数设置为基础时应用此参数。 | 字符串 |
密码 | 用于访问 HTTP 端点的密码。 仅当身份验证参数设置为基础时应用此参数。 | 密码 |
证书 URL | 用于访问 HTTP 端点的客户端证书的 URL 位置。 仅当身份验证参数设置为证书时应用此参数。 | 字符串 |
密码 | 客户端证书密码(如果已设置)。 仅当身份验证参数设置为证书时应用此参数。 | 密码 |
自定义标题 | 发送到指定 HTTP 端点的 HTTP 请求中将包含可选的自定义标题。 例如,自定义标题可用于指定第三方 API 密钥或身份验证标题。 此参数支持源和 $accessToken 全局变量。 | 键值对 |
URL 参数 | 要包含在发送到指定 HTTP 端点的 HTTP 请求 URL 中的可选 URL 参数。 虽然也可以在 URL 参数中设置参数,但是在此处输入的 URL 参数将覆盖为 URL 参数提供的任何匹配参数。 在此处定义的参数将始终使用 URL 编码。 此参数支持源和 $accessToken 全局变量。 | 键值对 |
长轮询 | 长轮询指定是否轮询 Web 服务器并保持开放的连接状态,直到服务器发送新数据为止。 当收到数据后,将立即发送一个新请求。 注:这是独有的 web 服务器配置,对大多数 web 服务器而言并不常见。 | 布尔 |
全局变量 (可选) | 可使用此参数将源全局变量转换为自定义日期时间格式。 此参数支持源和 $accessToken 全局变量。 | 字符串 |
其他日志记录 (可选) | 打开其他日志记录参数以指定是否可以记录 Velocity 发出的原始 HTTP 请求和响应。 注:打开此参数以进行故障排除,并在完成故障排除时关闭。 在打开参数后启动源,调试级别日志即会出现在源日志页面上。 如有必要,请联系 Esri 技术 支持 以获得故障排除方面的帮助。 | 布尔 |
注意事项和限制
使用源时,请考虑以下事项:
- 必须可以通过 Internet 从外部访问 HTTP 端点。
- 被轮询的 HTTP 相应或文件的大小不应超过 16 MB。 如果被轮询的数据超过 16 MB,则可能不会使用要素。
- 最佳做法是将此源类型用于速度等于或低于大约 3000 个点要素/秒的实时数据。 受支持的速度会根据数据属性的数量、传入数据的格式以及折线/面要素的复杂性而变化。