Skip to main content
Cet article décrit les différences des API de requêtes web entre le Microsoft Game Development Kit (GDK) et le XBOX One Software Development Kit. WinHttp est la nouvelle API HTTP Win32 qui remplace les API IXMLHttpRequest2 (IXHR2) et IMessageWebSocket. WinHttp est une API de plus bas niveau qu’IXHR2 et, par conséquent, elle ne dispose pas de certaines fonctionnalités d’IXHR2, comme la mise en cache du contenu, les témoins (cookies), l’insertion automatique des jetons des XBOX services et l’application automatique de la sécurité. En contrepartie, WinHttp est beaucoup plus performante, car elle s’exécute dans le processus, présente moins de surcharge et évite les copies excessives en mémoire. De plus, WinHttp prend en charge HTTP/1.1, HTTP/2 et WebSockets, le tout dans une seule API, et comprend des fonctionnalités absentes d’IXHR2, comme les téléversements par blocs (chunked). XCurl est une API HTTP pour le Microsoft Game Development Kit (GDK). XCurl offre une API plus simple au moyen d’un adaptateur par-dessus WinHttp. La surface d’API de XCurl correspond en grande partie à celle de libCurl. XCurl simplifie le développement des titres en appliquant automatiquement les pratiques exemplaires de sécurité et en gérant l’initialisation du réseau. En plus de WinHttp, l’API XBOX Services (XSAPI) fournit l’ensemble simple d’API http_call que vous pouvez utiliser pour effectuer des requêtes HTTP REST vers vos propres serveurs personnalisés. Nous recommandons d’utiliser XSAPI pour toutes les requêtes REST que votre titre effectue vers vos propres services et vers les XBOX services. Pour plus d’information sur XSAPI, consultez Prise en main des API XBOX Services. Le GDK comprend un exemple SimpleWinHttp qui encapsule l’utilisation de WinHTTP dans un modèle asynchrone simple du Microsoft Game Development Kit (GDK). Nous vous recommandons d’utiliser cet exemple comme point de départ pour votre propre mise en œuvre de WinHTTP, car il couvre plusieurs des détails nécessaires pour bâtir une intégration WinHTTP sécurisée et robuste. Pour plus d’information sur l’utilisation de XCurl ou de WinHttp, consultez HTTP et sockets web.

Initialisation du réseau

Votre titre est lancé le plus tôt possible pendant le processus de démarrage du Game OS. Vous pouvez commencer à charger des ressources à partir du disque dur et commencer à initialiser la pile graphique. Cependant, votre code s’exécute avant que les services réseau aient démarré, ce qui entraîne une période pendant laquelle il n’est pas sécuritaire d’utiliser les API réseau Win32. Nous appelons cette période la période d’initialisation du réseau, après laquelle le réseau est considéré comme initialisé. L’initialisation du réseau prend habituellement quelques secondes, ce qui peut être perceptible dans votre code. Pour les titres ERA pour XBOX One, l’initialisation du réseau bloquait de façon implicite et arbitraire des API réseau autrement sécuritaires en temps réel, comme WSAStartup ou bind. Avec les applications du Microsoft Game Development Kit (GDK), l’initialisation du réseau est désormais un concept explicite avec lequel vous devez interagir pour utiliser toute API réseau ou de sécurité Win32. Les titres du Microsoft Game Development Kit (GDK) doivent attendre que la valeur booléenne XNetworkingConnectivityHint::networkInitialized soit définie à true avant d’appeler toute API réseau de Winsock, WinHttp, IP Helper, BCrypt, WinCrypt, Schannel ou toute autre API réseau Win32. L’appel de l’une de ces API avant l’initialisation du réseau entraîne un comportement indéterminé pouvant aller jusqu’à des plantages aléatoires du processus. De plus, ce même concept s’applique à tous les cycles de suspension et de reprise. Lors de la suspension, les titres du Microsoft Game Development Kit (GDK) doivent fermer tous les descripteurs réseau et de sécurité. Les titres du Microsoft Game Development Kit (GDK) doivent ensuite traiter le gestionnaire de reprise de la même façon que le lancement initial du titre du point de vue du réseau, et attendre de nouveau que le réseau soit initialisé. Pour plus d’information, y compris des exemples de code montrant comment attendre l’initialisation du réseau, consultez Initialisation et connectivité du réseau.

Voir aussi

Initialisation et connectivité du réseau Vue d’ensemble de la sécurité des communications Prise en main des API XBOX Services http_call_c
Last modified on October 6, 2026