Conexiones HTTP/HTTPS para direcciones IP de salida dedicadas y VPN

Las conexiones HTTP/HTTPS se procesan por proxy automáticamente fuera de AEM as a Cloud Service con la dirección IP de salida dedicada o VPN, y no necesitan ninguna conexión especial portForwards reglas.

Compatibilidad avanzada con redes

El siguiente ejemplo de código es compatible con las siguientes opciones avanzadas de red.

Asegúrese de que la variable dirección IP de salida dedicada o VPN se ha configurado la configuración avanzada de redes antes de seguir este tutorial.

Sin redes avanzadas Salida de puerto flexible Dirección IP de salida dedicada Red privada virtual
ü ü š š
PRECAUCIÓN

Este ejemplo de código solo sirve para Dirección IP de salida dedicada y VPN. Hay un ejemplo de código similar, pero diferente, disponible para Conexiones HTTP/HTTPS en puertos no estándar para alimentación de puerto flexible.

Ejemplo de código

Este ejemplo de código Java™ es de un servicio OSGi que puede ejecutarse en AEM as a Cloud Service que realiza una conexión HTTP a un servidor web externo en el 8080. Las conexiones HTTPS (o HTTP) se procesan automáticamente por proxy AEM as a Cloud Service y no requieren un desarrollo especial.

NOTA

Se recomienda usar la variable API HTTP de Java™ 11 se utilizan para realizar llamadas HTTP/HTTPS desde AEM.

  • core/src/com/adobe/aem/wknd/examples/connections/impl/HttpExternalServiceImpl.java
package com.adobe.aem.wknd.examples.core.connections.impl;

import com.adobe.aem.wknd.examples.core.connections.ExternalService;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

@Component
public class HttpExternalServiceImpl implements ExternalService {
    private static final Logger log = LoggerFactory.getLogger(HttpExternalServiceImpl.class);

    // client with connection pool reused for all requests
    private HttpClient client = HttpClient.newBuilder().build();

    @Override
    public boolean isAccessible() {

        // Prepare the full URI to request, note this will have the
        // - Scheme (http/https)
        // - External host name
        // - External port
        // The external service URI, including the scheme/host/port, is defined in code, rather than in Cloud Manager portForwards rules.
        URI uri = URI.create("http://api.example.com:8080/test.json");

        // Prepare the HttpRequest
        HttpRequest request = HttpRequest.newBuilder().uri(uri).timeout(Duration.ofSeconds(2)).build();

        // Send the HttpRequest using the configured HttpClient
        HttpResponse<String> response = null;
        try {
            // Request the URL
            response = client.send(request, HttpResponse.BodyHandlers.ofString());

            log.debug("HTTP response body: {} ", response.body());

            // Our simple example returns true is response is successful! (200 status code)
            return response.statusCode() == 200;
        } catch (IOException e) {
            return false;
        } catch (InterruptedException e) {
            return false;
        }
    }
}

En esta página