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.
Inviare una richiesta HTTP
Per utilizzare il servizio di recupero URL per inviare richieste HTTP(S) in uscita,
chiama
il urlfetch pacchetto.
Per inviare una richiesta HTTP in uscita, utilizza il pacchetto http come di consueto, ma crea il client utilizzando urlfetch.Client. urlfetch.Client
restituisce un *http.Client che utilizza urlfetch.Transport, ovvero
un'implementazione dell'
http.RoundTripper interfaccia
che effettua richieste utilizzando l'API URL Fetch.
Il seguente snippet mostra come eseguire una richiesta HTTP GET di base:
import (
"fmt"
"net/http"
"google.golang.org/appengine/v2"
"google.golang.org/appengine/v2/urlfetch"
)
func handler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
client := urlfetch.Client(ctx)
resp, err := client.Get("http://www.google.com/")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer resp.Body.Close()
fmt.Fprintf(w, "HTTP GET returned status %v", resp.Status)
}
Disattivare i reindirizzamenti
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 indicare al servizio di recupero URL di non seguire i reindirizzamenti, imposta il
CheckRedirect campo del http.Client
restituito dal
urlfetch pacchetto
in modo che restituisca http.ErrUseLastResponse.
Questo vale per appengine/urlfetch e appengine/v2/urlfetch. Ad esempio:
client := urlfetch.Client(ctx)
client.CheckRedirect = func(*http.Request, []*http.Request) error {
return http.ErrUseLastResponse
}
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, puoi creare manualmente un
Trasporto e impostare
AllowInvalidServerCertificate su true.
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.