Les connexions HTTP/HTTPS sont automatiquement traitées par proxy en dehors des AEM as a Cloud Service avec une adresse IP de sortie dédiée ou un VPN, et elles n’ont pas besoin de portForwards
règles.
L’exemple de code suivant est pris en charge par les options de mise en réseau avancées suivantes.
Assurez-vous que la variable adresse IP de sortie dédiée ou VPN une configuration réseau avancée a été configurée avant de suivre ce tutoriel.
Pas de mise en réseau avancée | Sortie de port flexible | Adresse IP sortante dédiée | Réseau privé virtuel |
---|---|---|---|
✘ | ✘ | ✔ | ✔ |
Cet exemple de code concerne uniquement Adresse IP Egress dédiée et VPN. Un exemple de code similaire, mais différent est disponible pour Connexions HTTP/HTTPS sur les ports non standard pour une sortie de port flexible.
Cet exemple de code Java™ illustre un service OSGi qui peut s’exécuter dans AEM as a Cloud Service qui établit une connexion HTTP à un serveur web externe sur 8080. Les connexions HTTPS (ou HTTP) sont automatiquement traitées par proxy hors d’AEM as a Cloud Service et ne nécessitent pas de développement spécial.
Il est recommandé de API HTTP Java™ 11 sont utilisés pour effectuer des appels HTTP/HTTPS depuis 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;
}
}
}