Depuração de pilhas HTTP personalizadas
Use este artigo quando seu título usar uma pilha HTTP personalizada diretamente em vez do xCurl e você precisar depurar o tráfego por meio de um proxy, como a XBOX Multiplayer Analysis Tool (XMAT). Para obter as instruções e os downloads originais, consulte a documentação do projeto XMAT e as versões da XMAT. O Fiddler também é compatível.Quando usar estas diretrizes
Estas diretrizes são mais úteis quando uma ou mais das seguintes condições se aplicam:- Seu título precisa inspecionar ou aplicar as configurações de proxy diretamente.
- Seu fluxo de trabalho de depuração depende da XMAT, do Fiddler ou de outro proxy de desenvolvimento.
- Sua pilha HTTP não usa o Schannel como provedor de segurança e precisa carregar os certificados do proxy explicitamente.
Configurações de proxy no XBOX e no PC
Ao lidar com as configurações de proxy no XBOX, prefiraWinHttpGetProxySettingsEx com WinHttpProxySettingsTypeXBox quando esse caminho estiver disponível no seu build e no ambiente de destino. No XBOX, essa API é a API voltada para o futuro para ler as configurações de proxy a partir do Microsoft Game Development Kit (GDK) de abril de 2026.
Se o seu título for destinado a um GDK anterior no XBOX, o caminho de configurações de proxy específico do XBOX não estará disponível. Nesse caso, defina manualmente o endereço e a porta do proxy na sua pilha HTTP. O caminho de carregamento de certificados descrito mais adiante neste artigo ainda se aplica a esses GDKs mais antigos, mesmo que a API de endereço de proxy específica do XBOX não esteja disponível.
Os títulos para PC também podem consultar as configurações de proxy por meio do WinHTTP, mas não copie o fluxo do XBOX diretamente. No PC, WinHttpGetProxySettingsEx é assíncrona, portanto, aguarde a conclusão da operação antes de chamar WinHttpGetProxySettingsResultEx e copiar os valores de proxy retornados para a sua pilha HTTP.
Um exemplo usando a libcurl é resolver o endereço do proxy com a API de configurações de proxy do XBOX e, em seguida, passá-lo diretamente para a pilha. O exemplo abre a sessão com WINHTTP_FLAG_ASYNC e registra um retorno de chamada de status para que o código trate tanto a conclusão síncrona quanto um retorno ERROR_IO_PENDING. O exemplo a seguir mostra o fluxo de chamadas:
Comportamento do provedor TLS
Pilhas baseadas em Schannel
Se a sua pilha depender do comportamento de TLS baseado em Schannel, o console aplicará automaticamente o certificado de proxy que você configurar. Esse comportamento também se aplica a builds da libcurl que usam o Schannel como provedor TLS.Pilhas que não usam Schannel
Se a sua pilha depender do OpenSSL ou de outro provedor TLS que não seja o Schannel, seu título será responsável por carregar explicitamente o certificado exigido pela ferramenta de depuração ativa. Mantenha esse caminho de carregamento de certificados no seu código de versão de lançamento. No console, os títulos também devem manter o caminho de depuração de proxy relacionado disponível em buildsRETAIL para que você ainda possa diagnosticar o tráfego que passa pelo proxy quando necessário.
Para obter diretrizes sobre confiança, proxy e padrões seguros, consulte Práticas recomendadas para solicitações da Web e WebSockets seguros para títulos do Microsoft Game Development Kit.
Localizar o certificado raiz do proxy
Para pilhas que não usam Schannel, carregue explicitamente o certificado que corresponde à ferramenta de depuração e mantenha esse caminho no seu código de versão de lançamento. O local e o assunto do certificado dependem da ferramenta. Por exemplo, a XBOX Multiplayer Analysis Tool (XMAT) usa o certificadoXbox Multiplayer Analysis Tool Root Cert Authority em CurrentUser\Root. Este exemplo procura esse certificado e copia os bytes do certificado codificado em DER para um buffer pertencente ao título.
encodedCertificate para o caminho de carregamento de certificados usado pelo seu provedor TLS.
Fluxo de trabalho de depuração sugerido
- Configure o console para o proxy de depuração:
- Para a XMAT, adicione uma captura de Web Proxy para o console e, em seguida, selecione Enable XBOX Proxy. Para obter mais informações, consulte Usar a XBOX Multiplayer Analysis Tool para inspecionar e modificar o tráfego de rede.
- Para o Fiddler, defina as configurações de proxy do console no XBOX Device Portal, conforme descrito em Fiddler em kits de desenvolvimento XBOX.
- Se o seu destino for o XBOX com o GDK de abril de 2026 ou posterior e o seu título precisar inspecionar as configurações de proxy diretamente, use
WinHttpGetProxySettingsExcomWinHttpProxySettingsTypeXBox. - Se o caminho de código do PC consultar as configurações de proxy por meio do WinHTTP, aguarde o resultado assíncrono antes de chamar
WinHttpGetProxySettingsResultExe aplicar os valores de proxy retornados. - Se o seu destino for um GDK anterior no XBOX ou se você usar uma pilha que não consome o caminho de configurações de proxy específico do XBOX, defina o endereço e a porta do proxy manualmente no seu título.
- Se você usar o Schannel, conte com o certificado aplicado pelo console. Se você usar o OpenSSL ou outra pilha, recupere o certificado da ferramenta de depuração que está usando no repositório de certificados e carregue-o explicitamente.
