> ## 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.

# Diferenças nas solicitações da Web entre o GDK e o XDK

> Diferenças entre as solicitações da Web no Microsoft Game Development Kit e no XBOX One Software Development Kit

Este artigo descreve as diferenças nas APIs de solicitações da Web entre o Microsoft Game Development Kit (GDK) e o XBOX One Software Development Kit. `WinHttp` é a nova API HTTP do Win32 que substitui as APIs `IXMLHttpRequest2` (IXHR2) e `IMessageWebSocket`. `WinHttp` é uma API de nível mais baixo que a IXHR2 e, portanto, não tem alguns recursos em comparação com a IXHR2, como cache de conteúdo, cookies, inserção automática de tokens dos XBOX services e aplicação automática de segurança. Em contrapartida, `WinHttp` tem um desempenho muito melhor por ser executada no processo, ter menos sobrecarga e evitar cópias excessivas de memória. Além disso, `WinHttp` dá suporte a HTTP/1.1, HTTP/2 e WebSockets, tudo em uma única API, e inclui recursos que faltam na IXHR2, como uploads em partes.

`XCurl` é uma API HTTP para o Microsoft Game Development Kit (GDK). `XCurl` fornece uma API mais simples por meio de um adaptador sobre `WinHttp`. A superfície da API `XCurl` corresponde, em linhas gerais, à [libCurl](https://curl.haxx.se/libcurl/). `XCurl` simplifica o desenvolvimento de títulos ao lidar automaticamente com as práticas recomendadas de segurança e com a inicialização da rede.

Além de `WinHttp`, a API dos XBOX services (`XSAPI`) fornece o conjunto simples de APIs [http\_call](/pt-BR/reference/live/xsapi-c/http_call_c/http_call_c_members), que você pode usar para fazer solicitações HTTP REST aos seus próprios servidores personalizados. Recomendamos usar a `XSAPI` para todas as solicitações REST que seu título faz aos seus próprios serviços e aos XBOX services.
Para obter mais informações sobre a `XSAPI`, consulte [Introdução às APIs dos XBOX services](/pt-BR/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis).

O GDK inclui um [exemplo SimpleWinHttp](https://aka.ms/gdkdl) que abstrai o uso do WinHTTP em um modelo assíncrono simples do Microsoft Game Development Kit (GDK). Recomendamos que você use esse exemplo como ponto de partida para sua própria implementação do WinHTTP, pois ele aborda muitos dos detalhes envolvidos na criação de uma integração segura e robusta com o WinHTTP.

Para obter mais informações sobre como usar `XCurl` ou `WinHttp`, consulte [HTTP e WebSockets](/pt-BR/build/console-features/networking/web-requests/http-networking).

## Inicialização da rede

Seu título é iniciado o mais cedo possível durante o processo de inicialização do Game OS. Você pode começar a carregar ativos do disco rígido e iniciar a inicialização da pilha de gráficos. No entanto, seu código está sendo executado antes de os serviços de rede serem iniciados, o que leva a um período em que não é seguro usar as APIs de rede do Win32. Definimos esse período como o período de *inicialização da rede*, após o qual a rede é considerada inicializada. A inicialização da rede normalmente leva alguns segundos, o que pode ser perceptível no seu código.

A inicialização da rede em títulos ERA do XBOX One bloqueava de forma implícita e arbitrária APIs de rede que, de outra forma, seriam seguras para tempo real, como `WSAStartup` ou `bind`. Com os aplicativos do Microsoft Game Development Kit (GDK), a inicialização da rede agora é um conceito explícito com o qual você deve interagir para usar quaisquer APIs de rede ou de segurança do Win32.

Os títulos do Microsoft Game Development Kit (GDK) devem aguardar até que o Booleano `XNetworkingConnectivityHint::networkInitialized` seja definido como `true` antes de chamar qualquer API de rede em `Winsock`, `WinHttp`, `IP Helper`, `BCrypt`, `WinCrypt`, `Schannel` ou qualquer outra API de rede do Win32. Chamar qualquer uma dessas APIs antes de a rede ser inicializada resulta em comportamento indeterminado, incluindo falhas aleatórias do processo.

Além disso, esse mesmo conceito se aplica a todos os ciclos de suspensão/retomada. Na suspensão, os títulos do Microsoft Game Development Kit (GDK) devem fechar todos os identificadores de rede e de segurança. Em seguida, os títulos do Microsoft Game Development Kit (GDK) devem tratar o manipulador de retomada da mesma forma que a inicialização original do título, do ponto de vista da rede, e aguardar novamente até que a rede seja inicializada.

Para obter mais informações, incluindo exemplos de código que mostram como aguardar a inicialização da rede, consulte [Inicialização e conectividade da rede](/pt-BR/build/console-features/networking/initialization-connectivity-networking).

## Confira também

[Inicialização e conectividade da rede](/pt-BR/build/console-features/networking/initialization-connectivity-networking)

[Visão geral da segurança da comunicação](/pt-BR/build/game-principles/security/communication-security-overview)

[Introdução às APIs dos XBOX services](/pt-BR/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis)

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


## Related topics

- [Migrar a rede do XDK para o XBOX GDK](/pt-BR/build/console-features/networking/xdk-migration/index.md)
- [Guias de migração do XBOX One Software Development Kit](/pt-BR/build/console-features/networking/xdk-migration/xdk-migration-toc.md)
- [Solicitações da Web](/pt-BR/build/console-features/networking/web-requests/web-requests-toc.md)
- [Solicitações da Web HTTP e WebSocket no GDK](/pt-BR/build/console-features/networking/web-requests/http-networking.md)
- [Comunicação de malha de jogo: diferenças entre o GDK e o XDK](/pt-BR/build/console-features/networking/xdk-migration/xdk-migration-game-mesh-networking.md)
