Le connessioni HTTP/HTTPS vengono automaticamente proxy fuori AEM as a Cloud Service con indirizzo IP in uscita dedicato o VPN e non hanno bisogno di alcun indirizzo speciale portForwards
regole.
L'esempio di codice seguente è supportato dalle seguenti opzioni di rete avanzate.
Assicurati che indirizzo IP in uscita dedicato o VPN la configurazione di rete avanzata è stata impostata prima di seguire questa esercitazione.
Nessuna rete avanzata | Uscita porta flessibile | Indirizzo IP in uscita dedicato | Rete privata virtuale |
---|---|---|---|
✘ | ✘ | ↓ | ↓ |
Questo esempio di codice è valido solo per Indirizzo IP Egress dedicato e VPN. Un esempio di codice simile ma diverso è disponibile per Connessioni HTTP/HTTPS su porte non standard per Flexible Port Egress.
Questo esempio di codice Java™ è di un servizio OSGi che può essere eseguito in AEM as a Cloud Service che effettua una connessione HTTP a un server web esterno su 8080. Le connessioni HTTPS (o HTTP) vengono automaticamente proxy fuori AEM as a Cloud Service e non richiedono uno sviluppo speciale.
Si consiglia di API HTTP Java™ 11 vengono utilizzati per effettuare chiamate HTTP/HTTPS da 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;
}
}
}