Skip to main content

Débogage des piles HTTP personnalisées

Utilisez cet article lorsque votre titre utilise directement une pile HTTP personnalisée au lieu de xCurl et que vous devez déboguer le trafic par l’intermédiaire d’un proxy tel que XBOX Multiplayer Analysis Tool (XMAT). Pour les instructions et les téléchargements en amont, consultez la documentation du projet XMAT et les versions de XMAT. Fiddler est également pris en charge.

Quand utiliser ces conseils

Ces conseils sont particulièrement utiles lorsqu’une ou plusieurs des situations suivantes s’appliquent :
  • Votre titre doit inspecter ou appliquer directement les paramètres de proxy.
  • Votre flux de travail de débogage dépend de XMAT, de Fiddler ou d’un autre proxy de développement.
  • Votre pile HTTP n’utilise pas Schannel comme fournisseur de sécurité et doit charger explicitement les certificats du proxy.
Pour des conseils généraux sur la sécurité, consultez Meilleures pratiques pour des requêtes web et des WebSockets sécurisés pour les titres Microsoft Game Development Kit.

Paramètres de proxy sur XBOX et PC

Lorsque vous gérez les paramètres de proxy sur XBOX, privilégiez WinHttpGetProxySettingsEx avec WinHttpProxySettingsTypeXBox lorsque ce chemin est disponible dans votre build et votre environnement cible. Sur XBOX, cette API est l’API d’avenir pour lire les paramètres de proxy à partir du Microsoft Game Development Kit (GDK) d’avril 2026. Si votre titre cible un GDK antérieur sur XBOX, le chemin des paramètres de proxy propre à XBOX n’est pas disponible. Dans ce cas, définissez manuellement l’adresse et le port du proxy dans votre pile HTTP. Le chemin de chargement des certificats décrit plus loin dans cet article s’applique toujours à ces GDK plus anciens, même si l’API d’adresse de proxy propre à XBOX n’est pas disponible. Les titres PC peuvent également interroger les paramètres de proxy par l’intermédiaire de WinHTTP, mais ne copiez pas directement le flux XBOX. Sur PC, WinHttpGetProxySettingsEx est asynchrone; attendez donc la fin de l’opération avant d’appeler WinHttpGetProxySettingsResultEx et de copier les valeurs de proxy retournées dans votre pile HTTP. Un exemple utilisant libcurl consiste à résoudre l’adresse du proxy avec l’API de paramètres de proxy XBOX, puis à la transmettre directement à la pile. L’exemple ouvre la session avec WINHTTP_FLAG_ASYNC et inscrit un rappel d’état afin que le code gère à la fois l’achèvement synchrone et un retour ERROR_IO_PENDING. L’exemple suivant montre le flux d’appels :

Comportement du fournisseur TLS

Piles basées sur Schannel

Si votre pile s’appuie sur un comportement TLS basé sur Schannel, la console applique automatiquement le certificat de proxy que vous configurez. Ce comportement s’applique également aux builds libcurl qui utilisent Schannel comme fournisseur TLS.

Piles non basées sur Schannel

Si votre pile s’appuie sur OpenSSL ou sur un autre fournisseur TLS non basé sur Schannel, votre titre est responsable du chargement explicite du certificat requis par l’outil de débogage actif. Conservez ce chemin de chargement des certificats dans votre code de version finale. Sur console, les titres doivent également conserver le chemin de débogage de proxy connexe disponible dans les builds RETAIL afin que vous puissiez toujours diagnostiquer le trafic passant par un proxy au besoin. Pour des conseils sur la confiance, les proxys et les valeurs par défaut sécurisées, consultez Meilleures pratiques pour des requêtes web et des WebSockets sécurisés pour les titres Microsoft Game Development Kit.

Trouver le certificat racine du proxy

Pour les piles non basées sur Schannel, chargez explicitement le certificat qui correspond à l’outil de débogage et conservez ce chemin dans votre code de version finale. L’emplacement et le sujet du certificat dépendent de l’outil. Par exemple, XBOX Multiplayer Analysis Tool (XMAT) utilise le certificat Xbox Multiplayer Analysis Tool Root Cert Authority dans CurrentUser\Root. Cet exemple recherche ce certificat et copie les octets du certificat encodé en DER dans une mémoire tampon appartenant au titre.
Après cette étape, transmettez encodedCertificate au chemin de chargement des certificats qu’utilise votre fournisseur TLS.

Flux de travail de débogage suggéré

  1. Configurez la console pour le proxy de débogage :
  2. Si vous ciblez XBOX avec le GDK d’avril 2026 ou une version ultérieure et que votre titre doit inspecter directement les paramètres de proxy, utilisez WinHttpGetProxySettingsEx avec WinHttpProxySettingsTypeXBox.
  3. Si votre chemin de code PC interroge les paramètres de proxy par l’intermédiaire de WinHTTP, attendez le résultat asynchrone avant d’appeler WinHttpGetProxySettingsResultEx et d’appliquer les valeurs de proxy retournées.
  4. Si vous ciblez un GDK antérieur sur XBOX ou utilisez une pile qui n’exploite pas le chemin des paramètres de proxy propre à XBOX, définissez manuellement l’adresse et le port du proxy dans votre titre.
  5. Si vous utilisez Schannel, fiez-vous au certificat appliqué par la console. Si vous utilisez OpenSSL ou une autre pile, récupérez le certificat de l’outil de débogage que vous utilisez dans le magasin de certificats et chargez-le explicitement.

Pages connexes

Last modified on October 6, 2026