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 以及 xCurllibCurl 之间的差异,请参阅 xCurl 概述

XSAPI

Xbox Services API (XSAPI) 提供了一个通用 REST 包装器,该包装器与 Microsoft 游戏开发工具包 (GDK) 游戏完全兼容。 此包装器采用 Microsoft 游戏开发工具包 (GDK) 异步 API 模型,可直接使用。 如果你的游戏只需要发出 REST HTTP 请求,这可能是最简单的完全符合的界面。

  1. 使用XblHttpCallCreate 创建一个 HTTP 句柄来跟踪你的 REST 请求。
  2. 使用 XblHttpCallRequestSet* 函数之一填充主体和任何额外配置。
  3. 调用 XblHttpCallPerformAsync 进行请求。
  4. 要检索响应,使用 XblHttpCallGet* 函数之一。
  5. 使用 XblHttpCallCloseHandle 关闭句柄。

libHttpClient

libHttpClient 旨在实现双向通信。 它是一个抽象层,设计用于 Xbox Live 服务 API (XSAPI) 来启用 HTTP 和 WebSocket 服务终结点。 该 API 在游戏开发工具包 (GDK) 中作为 XSAPI 的一部分。

另请参阅

Windows HTTP 服务 (WinHTTP)

libcurl

在合作伙伴中心设置 Web 服务(NDA 主题)要求授权

Xbox One 主机上的 Fiddler

通信安全概览(NDA 主题)要求授权