Skip to main content
Cet article fournit un aperçu des requêtes web HTTP (Hypertext Transfer Protocol) et WebSocket pour les titres Microsoft Game Development Kit (GDK). Commencer avec le bon ensemble d’API vous permet de mettre en œuvre plus facilement des requêtes web sécurisées et robustes.

API courantes pour les titres GDK

Les API suivantes sont couramment utilisées pour des requêtes web sécurisées et robustes dans les titres Microsoft Game Development Kit (GDK). Elles aident également à simplifier la mise en œuvre. Windows HTTP Services (WinHTTP) WinHTTP peut également être utilisé pour créer des points de terminaison de service HTTP et WebSocket sur les PC et les consoles XBOX sans modification du code. Comme cette API ne gère pas automatiquement toutes les meilleures pratiques de sécurité, assurez-vous de lire Vue d’ensemble de la sécurité des communications (article sous NDA) et Vue d’ensemble de WinHTTP pour savoir comment vous assurer que votre mise en œuvre est sécurisée et robuste. xCurl gère les meilleures pratiques de sécurité, y compris la validation de la chaîne de certificats et les vérifications de connectivité réseau. Il gère également automatiquement l’initialisation du réseau ainsi que la suspension et la reprise. Si votre titre utilise WinHTTP ou une autre pile HTTP au lieu de xCurl, considérez que le titre est responsable du travail d’intégration à la plateforme, comme l’initialisation du réseau, la gestion de la suspension et de la reprise, et la configuration de sécurité explicite. Pour des conseils sur le séquencement et le cycle de vie, consultez Initialisation et connectivité du réseau et Vue d’ensemble de WinHTTP. Pour les flux de travail de débogage basés sur un proxy sur XBOX, commencez par Fiddler sur les consoles XBOX One. Si votre titre utilise une pile personnalisée, consultez Débogage des piles HTTP personnalisées pour des conseils sur les proxys et les certificats propres à XBOX.

xCurl

xCurl est une API HTTP disponible pour les titres Microsoft Game Development Kit (GDK). Elle simplifie le développement de titres en respectant automatiquement toutes les meilleures pratiques de sécurité. Comme la surface d’API correspond largement à libCurl, elle offre également toute la flexibilité et l’ensemble des fonctionnalités HTTP de libCurl. Pour en savoir plus sur l’API xCurl et sur les différences entre xCurl et libCurl, consultez Vue d’ensemble de xCurl.

XSAPI

XBOX Services API (XSAPI) fournit un wrapper REST générique pour les titres Microsoft Game Development Kit (GDK). Ce wrapper est simple à utiliser et suit le modèle d’API asynchrone du Microsoft Game Development Kit (GDK). Si votre titre n’a besoin que d’effectuer des requêtes HTTP REST, il s’agit probablement de l’interface la plus simple à utiliser.
  1. Utilisez XblHttpCallCreate pour créer un handle HTTP afin de suivre votre requête REST.
  2. Remplissez le corps et toute configuration supplémentaire avec l’une des fonctions XblHttpCallRequestSet*.
  3. Appelez XblHttpCallPerformAsync pour effectuer la requête.
  4. Pour récupérer la réponse, utilisez l’une des fonctions XblHttpCallGet*.
  5. Fermez le handle à l’aide de XblHttpCallCloseHandle.

libHttpClient

libHttpClient est conçu pour permettre une communication bidirectionnelle. Il s’agit d’une couche d’abstraction conçue pour être utilisée par XBOX Live Service API (XSAPI) afin de permettre des points de terminaison de service HTTP et WebSocket. L’API est incluse dans le Game Development Kit (GDK) dans le cadre de XSAPI.

Suspension et reprise avec libHttpClient

Contrairement à xCurl, libHttpClient ne vide pas et ne démantèle pas automatiquement le travail en cours lorsque le titre est suspendu. Les titres qui utilisent libHttpClient (y compris sa prise en charge de WebSocket) doivent gérer explicitement le cycle de vie de suspension et de reprise. Les consoles commerciales passent en suspension en mode veille; une connexion WebSocket ou une opération asynchrone laissée ouverte pendant la suspension peut donc se bloquer ou planter à la reprise, même si le même titre se suspend et reprend correctement sur une trousse de développement. Lors de la suspension ou de l’arrêt :
  • Cessez de mettre en file d’attente de nouveaux travaux HTTP et WebSocket.
  • Annulez ou videz les requêtes en cours ainsi que les envois et réceptions WebSocket.
  • Fermez les connexions WebSocket et détruisez les handles d’appels HTTP, les sessions et les sockets qui ne doivent pas survivre à la suspension.
Lors de la reprise, attendez que XNetworkingConnectivityHint::networkInitialized soit true avant de recréer l’état de libHttpClient ou de rouvrir les connexions WebSocket. Pour connaître les règles complètes de séquencement et leur justification, consultez Détection de l’état d’initialisation du réseau et les conseils sur le cycle de vie du jeu dans Réponse à la suspension et à la reprise.

Voir aussi

Windows HTTP Services (WinHTTP) libCurl Configuration des services web dans l’Espace partenaires (article sous NDA) Fiddler sur les consoles XBOX One Vue d’ensemble de la sécurité des communications (article sous NDA)
Last modified on October 6, 2026