Web 请求概述
本主题概述了 Microsoft 游戏开发工具包 (GDK) 游戏的超文本传输协议 (HTTP) 和 WebSocket Web 请求。
从正确的 API 集开始,可以更轻松地实现符合 Xbox 要求 (XR) 的安全通信。
Xbox 主机和 Windows 10 电脑
建议使用以下 API 来遵守安全要求。 它们还有助于简化 Web 请求的实现。
用例 | 推荐的 API |
---|---|
具有游戏运行时服务 (GRTS) 样式 API 的 REST 请求 | Microsoft Xbox Live 服务 API (XSAPI) |
通用 HTTP 请求 | XCurl |
WebSocket 请求 | libHttpClient |
Windows HTTP 服务 (WinHTTP)
WinHTTP 还可用于在电脑和 Xbox 主机上创建 HTTP 和 WebSocket 服务终结点,无需更改代码。 由于此 API 不会自动处理所有安全最佳做法,因此请务必阅读通信安全概述要求授权和 WinHTTP 概述(NDA 主题),了解如何确保实现安全可靠。
xCurl 的优点在于其能处理安全最佳做法,包括证书链验证和网络连接检查。 这就是为什么我们推荐 xCurl 用于一般目的的 HTTP 请求的原因。
注意:
- 为 Xbox 主机开发游戏时,必须使用 WinHTTP 或 xCurl。 不允许使用自定义 HTTP 堆栈实现。 有关详细信息,请参阅 Xbox 主机游戏的 Xbox 要求中安全性下的 XR-134:使用 Web 协议进行数据传输。
- 为电脑开发游戏时,有更多选项。 对于常规用途的 HTTP 请求,还可以通过 Microsoft 游戏开发工具包 (GDK) 游戏直接使用 libCurl 或任何其他 HTTP 协议栈。
XCurl
xCurl 是 Microsoft 游戏开发工具包 (GDK) 游戏中 HTTP 请求的建议 API。 它自动遵守所有安全最佳做法,因而简化了游戏开发。 由于 API 表面广泛与 libCurl 匹配,因此它也有 libCurl 的全部灵活性和 HTTP 功能集。
若要详细了解关于 xCurl API 以及 xCurl 和 libCurl 之间的差异,请参阅 xCurl 概述。
XSAPI
Xbox Services API (XSAPI) 提供了一个通用 REST 包装器,该包装器与 Microsoft 游戏开发工具包 (GDK) 游戏完全兼容。 此包装器采用 Microsoft 游戏开发工具包 (GDK) 异步 API 模型,可直接使用。 如果你的游戏只需要发出 REST HTTP 请求,这可能是最简单的完全符合的界面。
- 使用XblHttpCallCreate 创建一个 HTTP 句柄来跟踪你的
REST
请求。 - 使用
XblHttpCallRequestSet*
函数之一填充主体和任何额外配置。 - 调用 XblHttpCallPerformAsync 进行请求。
- 要检索响应,使用
XblHttpCallGet*
函数之一。 - 使用 XblHttpCallCloseHandle 关闭句柄。
注意
XblHttpCallRequestSet*
和 XblHttpCallGet*
表示生成 HTTP 请求和检索 HTTP 响应的函数组。
libHttpClient
libHttpClient 旨在实现双向通信。 它是一个抽象层,设计用于 Xbox Live 服务 API (XSAPI) 来启用 HTTP 和 WebSocket 服务终结点。 该 API 在游戏开发工具包 (GDK) 中作为 XSAPI 的一部分。