Realización de solicitudes HTTP con la gema en la nube Marco - Lumberyard Guía del usuario

Si proporcionásemos una traducción de la versión en inglés de la guía, prevalecerá la versión en inglés de la guía si hubiese algún conflicto. La traducción se proporciona mediante traducción automática.

Realización de solicitudes HTTP con la gema en la nube Marco

El Cloud Gem Framework y esta documentación están en versión de vista previa de y están sujetos a cambios.

La gema Cloud Gem Framework proporciona clases C++ e interfaces EBus para ejecutar HTTP de las solicitudes de mediante la AZ::Job del sistema. El cliente de juego puede utilizar esta característica para hacer Solicitudes HTTP de datos de una API pública como Twitter o de una API personalizada. Por ejemplo, su El juego de podría realizar solicitudes HTTP a Twitter para ver quién tweetea sobre el juego.

Para habilitar el código del juego para realizar solicitudes HTTP

  1. En la pestaña Project Configurator, habilita la El lienzo de la nube es común y Marco de gemas en la nube para su proyecto.

  2. En Lumberyard Editor, en Entity Inspector, haga clic en [EMPTY] Componente.

  3. Desde la pestaña Marco de gemas en la nube , añade la sección El componente HttpClient a una entidad de la escena.

  4. Para realizar solicitudes HTTP desde el código del juego, realice uno de los siguientes pasos:

    • Desde un componente de script de Lua asociado a su entidad, añada código basado en lo siguiente ejemplo.

      local url = "https://my.url.com" local http_method = "GET" local json_body = "{}" HttpClientComponentRequestBus.Event.MakeHttpRequest(self.entityId, url, http_method, json_body)
    • En C++, utilice Lumberyardde Bus electrónico, como en el siguiente ejemplo.

      AZStd::string url = "https://my.url.com" AZStd::string httpMethod = "GET" AZStd::string jsonBody= "{}" EBUS_EVENT(HttpClientComponentRequestBus, MakeHttpRequest, url, httpMethod, jsonBody);
    • En C++, utilice HttpRequestJob, como en el siguiente ejemplo.

      AZStd::string url = "https://my.url.com" AZStd::string httpMethod = "GET" AZStd::string jsonBody= "{}" auto job = aznew HttpRequestJob(true, ServiceJob::GetDefaultConfig(), [this](int responseCode, AZStd::string content) { // handle success }, [this](int responseCode) { // handle failure } ); job->SetUrl(url.c_str()); job->SetHttpMethod(httpMethod ); job->SetJsonBody(jsonBody.c_str()); job->Start();

Obtención de respuestas HTTP mediante el script

Para obtener respuestas de una solicitud HTTP, la clase de script necesita una HttpClientComponentNotificationBus como en el siguiente ejemplo.

function httpClientUsageExample:OnActivate() self.notificationHandler = HttpClientComponentNotificationBus.Connect(self, self.entityId); end

A continuación, la clase de script debe implementar el HttpClientComponentNotificationBus funciones OnHttpRequestSuccess and OnHttpRequestFailure como en el siguiente ejemplo.

function myscript:OnHttpRequestSuccess(responseCode, responseBody) Debug.Log("HTTP RESPONSE -- " .. responseCode); Debug.Log("HTTP BODY -- " .. responseBody); end function myscript:OnHttpRequestFailure(errorCode) Debug.Log("HTTP Error-- " .. errorCode); end

Obtención de respuestas HTTP mediante C++

Para obtener las notificaciones en C++, debe crear un componente que herede de HttpClientComponentNotificationBus::Handler. Esta clase debe implementar OnHttpRequestSuccess y OnHttpRequestFailure y debería colocarse en la misma entidad que el HttpClientComponent en tu nivel.