Realización de solicitudes HTTP utilizando Cloud Gem Framework - Guía del usuario de Lumberyard

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Realización de solicitudes HTTP utilizando Cloud Gem Framework

El Cloud Gem Framework y esta documentación están en versión de vista previa, y están sometidos a cambios.
Open 3D Engine (O3DE), el sucesor de Lumberyard, ya está disponible en Developer Preview. Descargar O3DEo visite elBlog de AWS Game Techpara obtener más información.

Cloud Gem Framework proporciona clases C++ e interfaces EBus para ejecutar las solicitudes HTTP utilizando el sistema AZ::Job. El cliente de juego puede utilizar esta función para realizar solicitudes HTTP para datos de una API pública como Twitter o desde una API personalizada. Por ejemplo, el juego podría realizar solicitudes HTTP en Twitter para ver quién está enviando tweets sobre el juego.

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

  1. En el navegadorProject Configurator, active elCloud CanvasyCloud Gem Frameworkgemas para tu proyecto.

  2. En Lumberyard Editor, enEntity Inspector, haga clic enAdd Component.

  3. En la sección Cloud Gem Framework, añada HttpClientComponent a una entidad de su escena.

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

    • Desde un componente de script de Lua conectado a su entidad, añada el código basándose en el 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)
    • Desde C++, utilice LumberyardEBus, 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);
    • Desde 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();

Obtener respuestas HTTP utilizando scripts

Para obtener respuestas de una solicitud HTTP, su clase de script necesita un 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 las funciones HttpClientComponentNotificationBus 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

Obtener respuestas HTTP utilizando C++

Para obtener las notificaciones en C++, debe crear un componente que herede de HttpClientComponentNotificationBus::Handler. Esta clase debe implementarse OnHttpRequestSuccess y OnHttpRequestFailure y deberían guardarse en la misma entidad como el HttpClientComponent en su nivel.