HTTP/HTTPS verbindingen voor specifiek uitgang IP adres en VPN

HTTP/HTTPS-verbindingen worden automatisch vanuit AEM as a Cloud Service met een toegewezen IP-adres of VPN opgewekt en hebben geen speciale portForwards -regels nodig.

Geavanceerde netwerkondersteuning

Het volgende codevoorbeeld wordt gesteund door de volgende geavanceerde voorzien van een netwerkopties.

Verzeker het specifieke IP adres van de uitgang of VPNgeavanceerde voorzien van een netwerkconfiguratie opstelling voorafgaand aan het volgen van dit leerprogramma is geweest.

Geen geavanceerde netwerken
Flexibele havenuitgang
Dedicated egress IP adres
Virtueel Privé Netwerk
CAUTION
Dit codevoorbeeld is slechts voor Speciale IP van de Eis adresen VPN. Een gelijkaardig, maar verschillend codevoorbeeld is beschikbaar voor verbindingen HTTP/HTTPS op niet-standaardhavens voor de Flexibele Nauw van de Haven.

Codevoorbeeld

Dit Java™ codevoorbeeld is van de dienst OSGi die in AEM as a Cloud Service kan lopen die een verbinding van HTTP met een externe Webserver op 8080 maakt. De HTTPS (of HTTP) verbindingen worden automatisch verlengd uit AEM as a Cloud Service, en vereisen geen speciale ontwikkeling.

NOTE
Het wordt geadviseerd Java™ 11 HTTP APIswordt gebruikt om HTTP/HTTPS vraag van AEM te maken.
  • 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;
        }
    }
}
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69