> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Différences de requêtes web entre le GDK et le XDK

> Différences entre les requêtes web dans le Microsoft Game Development Kit et le XBOX One Software Development Kit

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 ne dispose donc pas de certaines fonctionnalités d'IXHR2, telles que la mise en cache du contenu, les cookies, l'insertion automatique des jetons 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 de mémoire excessives. De plus, `WinHttp` prend en charge HTTP/1.1, HTTP/2 et WebSockets, le tout dans une seule API, et inclut des fonctionnalités absentes d'IXHR2, comme les chargements fragmentés.

`XCurl` est une API HTTP pour le Microsoft Game Development Kit (GDK). `XCurl` fournit une API plus simple au moyen d'un adaptateur sur `WinHttp`. La surface d'API de `XCurl` correspond globalement à [libCurl](https://curl.haxx.se/libcurl/). `XCurl` simplifie le développement des titres en appliquant automatiquement les bonnes pratiques 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](/fr/reference/live/xsapi-c/http_call_c/http_call_c_members) que vous pouvez utiliser pour effectuer des requêtes HTTP REST vers vos propres serveurs personnalisés. Nous vous recommandons d'utiliser `XSAPI` pour toutes les requêtes REST que votre titre envoie à vos propres services et aux XBOX services.
Pour plus d'informations sur `XSAPI`, consultez [Prise en main des API XBOX Services](/fr/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis).

Le GDK inclut un [exemple SimpleWinHttp](https://aka.ms/gdkdl) qui abstrait 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 implémentation WinHTTP, car il couvre de nombreux détails liés à la création d'une intégration WinHTTP sécurisée et robuste.

Pour plus d'informations sur l'utilisation de `XCurl` ou `WinHttp`, consultez [HTTP et sockets web](/fr/build/console-features/networking/web-requests/http-networking).

## Initialisation du réseau

Votre titre est démarré le plus tôt possible pendant le processus de démarrage du Game OS. Vous pouvez commencer à charger des ressources depuis le disque dur et à initialiser la pile graphique. Cependant, votre code s'exécute avant le démarrage des services réseau, ce qui entraîne une période pendant laquelle il n'est pas sûr 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 généralement quelques secondes, ce qui peut être perceptible dans votre code.

Pour les titres ERA XBOX One, l'initialisation du réseau bloquait implicitement et arbitrairement des API réseau par ailleurs sûres en temps réel, telles que `WSAStartup` ou `bind`. Avec les applications Microsoft Game Development Kit (GDK), l'initialisation du réseau est désormais un concept explicite avec lequel vous devez interagir pour utiliser les API réseau ou de sécurité Win32.

Les titres Microsoft Game Development Kit (GDK) doivent attendre que le booléen `XNetworkingConnectivityHint::networkInitialized` soit défini sur `true` avant d'appeler une 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.

En outre, ce même concept s'applique à tous les cycles de suspension/reprise. Lors de la suspension, les titres Microsoft Game Development Kit (GDK) doivent fermer tous les handles réseau et de sécurité. Les titres Microsoft Game Development Kit (GDK) doivent ensuite traiter le gestionnaire de reprise de la même manière que le lancement initial du titre du point de vue réseau, et attendre à nouveau que le réseau soit initialisé.

Pour plus d'informations, notamment des exemples de code montrant comment attendre l'initialisation du réseau, consultez [Initialisation et connectivité réseau](/fr/build/console-features/networking/initialization-connectivity-networking).

## Voir aussi

[Initialisation et connectivité réseau](/fr/build/console-features/networking/initialization-connectivity-networking)

[Vue d'ensemble de la sécurité des communications](/fr/build/game-principles/security/communication-security-overview)

[Prise en main des API XBOX Services](/fr/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis)

[http\_call\_c](/fr/reference/live/xsapi-c/http_call_c/http_call_c_members)


## Related topics

- [Communication par maillage de jeu : différences entre le GDK et le XDK](/fr/build/console-features/networking/xdk-migration/xdk-migration-game-mesh-networking.md)
- [Requêtes web HTTP et WebSocket dans le GDK](/fr/build/console-features/networking/web-requests/http-networking.md)
- [Différences conceptuelles entre le GDK et Steamworks](/fr/build/steam-porting-guide/conceptual-differences.md)
- [Vue d'ensemble du guide de portage Steam](/fr/build/steam-porting-guide/overview.md)
- [Utilisateurs et périphériques d'entrée](/fr/build/core-features/common/user/users-input-devices.md)
