ID regione
L'elemento REGION_ID è un codice abbreviato che Google assegna in base alla regione selezionata quando crei l'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare simili ai codici di paesi e province di uso comune. Per le app create dopo
febbraio 2020, REGION_ID.r è incluso negli
URL di App Engine. Per le app esistenti create prima di questa data, l'
ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Questa pagina descrive come inviare richieste HTTP(S) dalla tua app App Engine utilizzando il servizio di recupero URL per i runtime di seconda generazione.
Prima di seguire le istruzioni riportate in questa pagina, ti consigliamo di utilizzare soluzioni idiomatiche del linguaggio per inviare richieste HTTP(S) prima di utilizzare il servizio di recupero URL. Il caso d'uso principale per l'utilizzo del recupero URL è quando vuoi inviare richieste HTTP(S) a un'altra app App Engine e asserire l'identità della tua app nella richiesta.
Per informazioni dettagliate sui limiti di dimensione delle richieste e sulle intestazioni inviate in una richiesta di recupero URL, consulta Richieste in uscita.
Per impostazione predefinita, le applicazioni in esecuzione nel runtime Java utilizzano classi Java standard per le richieste HTTP(S), ad esempiojava.net.HttpURLConnection. Le richieste vengono inviate come per qualsiasi altra applicazione Java.
Utilizzare le classi di rete del runtime standard
Se utilizzi le classi di rete Java standard, la tua app avrà accesso alle seguenti funzionalità:
- Il limite di 32 MB per i dati delle richieste non si applica.
- Supporto per HTTP 2.0.
- Supporta tutte le API basate su Google Cloudaccessibili dalle librerie client di Cloud per Java.
Utilizzare il recupero URL
Se devi utilizzare il recupero URL in un'app Java, aggiungi la seguente riga al tuo appengine-web.xml file:
<url-stream-handler>urlfetch</url-stream-handler>
Ad esempio:
<xml version="1.0" encoding="utf-8">
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<!-- ... -->
<url-stream-handler>urlfetch</url-stream-handler>
<!-- ... -->
</appengine-web-app>
Inviare una richiesta HTTP
Per utilizzare il servizio di recupero URL per inviare richieste HTTP(S) in uscita, utilizza il
java.net.URLConnection.
Il seguente snippet mostra come eseguire una richiesta HTTP GET di base.
L'applicazione crea un nuovo oggetto URL, quindi chiama il metodo openStream() dell'oggetto per recuperare i contenuti all'URL:
Per richieste più avanzate, utilizza java.net.HttpURLConnection come segue:
- Crea un nuovo oggetto
URL. - Crea un nuovo oggetto
URLConnectionchiamando il metodoopenConnection()dell'oggettoURL. - Crea un nuovo oggetto
HttpURLConnectioneseguendo il cast dell'oggettoURLConnectional tipo di oggettoHttpURLConnection. - Imposta il metodo di richiesta dell'oggetto
HttpURLConnection. - Crea uno stream di output per la richiesta.
- Scrivi il payload della richiesta nello stream.
- Chiudi lo stream.
Il seguente snippet mostra come utilizzare HttpURLConnection per eseguire una richiesta più avanzata e inviare dati da un modulo web utilizzando una richiesta PUT:
Impostare un timeout della richiesta
Se utilizzi il recupero URL, modifica la scadenza predefinita per
le richieste utilizzando l'impostazione appengine.api.urlfetch.defaultDeadline
nel file appengine-web.xml.
Impostare le intestazioni
Se utilizzi il recupero URL, puoi impostare un'intestazione HTTP nella richiesta in uscita chiamando il metodo setRequestProperty() dell'oggetto HttpURLConnection. Il seguente snippet imposta l'intestazione X-MyApp-Version su 2.7.3:
conn.setRequestProperty("X-MyApp-Version", "2.7.3");
Disattivare i reindirizzamenti
Per impostazione predefinita,HttpURLConnection segue i reindirizzamenti HTTP.
Se utilizzi il recupero URL, il servizio di recupero URL sottostante segue fino a cinque reindirizzamenti per impostazione predefinita. Questi reindirizzamenti potrebbero inoltrare informazioni sensibili, come le intestazioni di autorizzazione, alla destinazione reindirizzata. Se la tua app non richiede reindirizzamenti HTTP, ti consigliamo di disattivarli.
Per disattivare questo comportamento, passa il valore false al metodo setInstanceFollowRedirects() dell'oggetto HttpURLConnection:
conn.setInstanceFollowRedirects(false);
Se la tua app utilizza direttamente il pacchetto sottostante urlfetch
anziché java.net, deve specificare
doNotFollowRedirects.
Inviare una richiesta HTTPS
Per impostazione predefinita, il servizio di recupero URL sottostante convalida il certificato dell'host che contatta e rifiuta le richieste se il certificato non corrisponde. Non è necessario proteggere esplicitamente la richiesta.
Disattivare la convalida del certificato host
Per disattivare la convalida automatica del certificato host nel recupero URL, invia una richiesta HTTPS utilizzando la classe FetchOptions nel pacchetto urlfetch e chiama il metodo doNotValidateCertificate().
Inviare una richiesta asincrona
Per impostazione predefinita, le richieste HTTP(S) sono sincrone. Per inviare una richiesta asincrona
l'applicazione deve utilizzare
URLFetchService's
fetchAsync() metodo. Questo metodo restituisce un
java.util.concurrent.Future<HTTPResponse>.
Inviare una richiesta a un'altra app App Engine
Quando utilizzi il recupero URL per inviare una richiesta a un'altra app App Engine, la tua app può asserire la propria identità aggiungendo l'intestazione X-Appengine-Inbound-Appid alla richiesta.
Se indichi al servizio di recupero URL di non seguire i reindirizzamenti, App Engine aggiungerà automaticamente questa intestazione alle richieste. Per indicazioni su come disattivare i reindirizzamenti, consulta Disattivare i reindirizzamenti.
Passaggi successivi
Scopri di più sul servizio di recupero URL, ad esempio le intestazioni che sono inviate in una richiesta di recupero URL in Richieste in uscita.