Class UrlFetchApp

UrlRicercaApp

Recuperare risorse e comunicare con altri host tramite internet.

Questo servizio consente agli script di comunicare con altre applicazioni o di accedere ad altre risorse sul web recuperando gli URL. Uno script può utilizzare il servizio di recupero URL per inviare richieste HTTP e HTTPS e ricevere risposte. Il servizio di recupero dell'URL utilizza l'infrastruttura di rete di Google per scopi di efficienza e scalabilità.

Le richieste effettuate utilizzando questo servizio provengono da un pool definito di intervalli IP. Puoi consultare l'elenco completo degli indirizzi IP se devi inserire queste richieste nella lista consentita o approvarle.

Questo servizio richiede l'ambito https://www.googleapis.com/auth/script.external_request. Nella maggior parte dei casi, Apps Script rileva e include automaticamente gli ambiti di cui uno script ha bisogno, ma se imposti gli ambiti esplicitamente, devi aggiungere manualmente questo ambito per utilizzare UrlFetchApp.

Vedi anche

Metodi

MetodoTipo restituitoBreve descrizione
fetch(url)HTTPResponseInvia una richiesta per recuperare un URL.
fetch(url, params)HTTPResponseEffettua una richiesta per recuperare un URL utilizzando parametri avanzati facoltativi.
fetchAll(requests)HTTPResponse[]Effettua più richieste per recuperare più URL utilizzando parametri avanzati facoltativi.
getRequest(url)ObjectRestituisce la richiesta effettuata se l'operazione è stata invocata.
getRequest(url, params)ObjectRestituisce la richiesta che viene effettuata se l'operazione viene invocata.

Documentazione dettagliata

fetch(url)

Invia una richiesta per recuperare un URL.

Questo funziona sia su HTTP che su HTTPS.

// The code below logs the HTML code of the Google home page.
const response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());

Parametri

NomeTipoDescrizione
urlStringL'URL da recuperare. L'URL può contenere fino a 2082 caratteri.

Invio

HTTPResponse: i dati della risposta HTTP.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

  • https://www.googleapis.com/auth/script.external_request

fetch(url, params)

Effettua una richiesta per recuperare un URL utilizzando parametri avanzati facoltativi.

Questo funziona sia su HTTP che su HTTPS.

// Make a GET request and log the returned content.
const response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
// Make a POST request with form data.
const resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
const formData = {
  name: 'Bob Smith',
  email: 'bob@example.com',
  resume: resumeBlob,
};
// Because payload is a JavaScript object, it is interpreted as
// as form data. (No need to specify contentType; it automatically
// defaults to either 'application/x-www-form-urlencoded'
// or 'multipart/form-data')
const options = {
  method: 'post',
  payload: formData,
};
UrlFetchApp.fetch('https://httpbin.org/post', options);
// Make a POST request with a JSON payload.
const data = {
  name: 'Bob Smith',
  age: 35,
  pets: ['fido', 'fluffy'],
};
const options = {
  method: 'post',
  contentType: 'application/json',
  // Convert the JavaScript object to a JSON string.
  payload: JSON.stringify(data),
};
UrlFetchApp.fetch('https://httpbin.org/post', options);

Parametri

NomeTipoDescrizione
urlStringL'URL da recuperare. L'URL può contenere fino a 2082 caratteri.
paramsObjectL'oggetto JavaScript facoltativo che specifica i parametri avanzati come definito di seguito.

Parametri avanzati

NomeTipoDescrizione
contentTypeStringil tipo di contenuto (valore predefinito 'application/x-www-form-urlencoded'). Un altro esempio di tipo di contenuto è "application/xml; charset=utf-8".
headersObjectuna mappa chiave/valore JavaScript delle intestazioni HTTP per la richiesta
methodStringIl metodo HTTP per la richiesta: get, delete, patch, post o put. Il valore predefinito è get.
payloadStringil payload (ovvero il corpo del messaggio POST) per la richiesta. Alcuni metodi HTTP (ad esempio GET) non accettano un payload. Può essere una stringa, un array di byte, un blob o un oggetto JavaScript. Un oggetto JavaScript viene interpretato come una mappa di nomi di campi e valori, in cui i valori possono essere stringhe o blob.
useIntranetBooleanDeprecato. Questo indica a fetch di risolvere l'URL specificato all'interno dell'intranet collegata al tuo dominio tramite SDC (non più supportato)
validateHttpsCertificatesBooleanSe false, il recupero ignora eventuali certificati non validi per le richieste HTTPS. Il valore predefinito è true.
followRedirectsBooleanSe false il recupero non segue automaticamente i reindirizzamenti HTTP, viene restituita la risposta HTTP originale. Il valore predefinito è true.
muteHttpExceptionsBooleanSe true, il recupero non genera un'eccezione se il codice di risposta indica un errore, ma restituisce HTTPResponse. Il valore predefinito è false.
escapingBooleanSe i caratteri riservati false nell'URL non sono stati sottoposti a sfuggita. Il valore predefinito è true.

Invio

HTTPResponse: i dati della risposta HTTP.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

  • https://www.googleapis.com/auth/script.external_request

fetchAll(requests)

Effettua più richieste per recuperare più URL utilizzando parametri avanzati facoltativi.

Questo funziona sia su HTTP che su HTTPS.

// Make both a POST request with form data, and a GET request.
const resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
const formData = {
  name: 'Bob Smith',
  email: 'bob@example.com',
  resume: resumeBlob,
};
// Because payload is a JavaScript object, it is interpreted as
// as form data. (No need to specify contentType; it defaults to either
// 'application/x-www-form-urlencoded' or 'multipart/form-data')
const request1 = {
  url: 'https://httpbin.org/post',
  method: 'post',
  payload: formData,
};
// A request may also just be a URL.
const request2 = 'https://httpbin.org/get?key=value';
UrlFetchApp.fetchAll([request1, request2]);

Parametri

NomeTipoDescrizione
requestsObject[]Un array di URL o oggetti JavaScript che specificano le richieste come definito di seguito.

Parametri avanzati

NomeTipoDescrizione
urlStringl'URL da recuperare. L'URL può contenere fino a 2082 caratteri.
contentTypeStringil tipo di contenuto (valore predefinito 'application/x-www-form-urlencoded'). Un altro esempio di tipo di contenuto è "application/xml; charset=utf-8".
headersObjectuna mappa chiave/valore JavaScript delle intestazioni HTTP per la richiesta
methodStringIl metodo HTTP per la richiesta: get, delete, patch, post o put. Il valore predefinito è get.
payloadStringil payload (ovvero il corpo del messaggio POST) per la richiesta. Alcuni metodi HTTP (ad esempio GET) non accettano un payload. Può essere una stringa, un array di byte, un blob o un oggetto JavaScript. Un oggetto JavaScript viene interpretato come una mappa di nomi di campi e valori, in cui i valori possono essere stringhe o blob.
useIntranetBooleanDeprecato. Questo indica a fetch di risolvere l'URL specificato all'interno dell'intranet collegata al tuo dominio tramite SDC (non più supportato)
validateHttpsCertificatesBooleanSe false, il recupero ignora eventuali certificati non validi per le richieste HTTPS. Il valore predefinito è true.
followRedirectsBooleanSe false il recupero non segue automaticamente i reindirizzamenti HTTP, viene restituita la risposta HTTP originale. Il valore predefinito è true.
muteHttpExceptionsBooleanSe true, il recupero non genera un'eccezione se il codice di risposta indica un errore, ma restituisce HTTPResponse. Il valore predefinito è false.
escapingBooleanSe false, i caratteri riservati nell'URL non vengono sottoposti a sfuggita. Il valore predefinito è true.

Invio

HTTPResponse[]: un array di dati della risposta HTTP di ogni richiesta di input.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

  • https://www.googleapis.com/auth/script.external_request

getRequest(url)

Restituisce la richiesta effettuata se l'operazione è stata invocata.

Questo metodo non emette effettivamente la richiesta.

// The code below logs the value for every key of the returned map.
const response = UrlFetchApp.getRequest('http://www.google.com/');
for (const i in response) {
  Logger.log(`${i}: ${response[i]}`);
}

Parametri

NomeTipoDescrizione
urlStringL'URL da cercare. L'URL può contenere fino a 2082 caratteri.

Invio

Object: una mappa di nomi di campo a valore. La mappa contiene almeno le seguenti chiavi: url, method, contentType, payload e headers.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

  • https://www.googleapis.com/auth/script.external_request

getRequest(url, params)

Restituisce la richiesta che viene effettuata se l'operazione viene invocata.

Questo metodo non emette effettivamente la richiesta.

Parametri

NomeTipoDescrizione
urlStringL'URL da cercare. L'URL può contenere fino a 2082 caratteri.
paramsObjectUn oggetto JavaScript facoltativo che specifica i parametri avanzati come definiti di seguito.

Parametri avanzati

NomeTipoDescrizione
contentTypeStringil tipo di contenuto (valore predefinito 'application/x-www-form-urlencoded'). Un altro esempio di tipo di contenuto è "application/xml; charset=utf-8".
headersObjectuna mappa chiave/valore JavaScript delle intestazioni HTTP per la richiesta
methodStringIl metodo HTTP per la richiesta: get, delete, patch, post o put. Il valore predefinito è get.
payloadStringil payload (ovvero il corpo del messaggio POST) per la richiesta. Alcuni metodi HTTP (ad esempio GET) non accettano un payload. Può essere una stringa, un array di byte, un blob o un oggetto JavaScript. Un oggetto JavaScript viene interpretato come una mappa di nomi di campi e valori, in cui i valori possono essere stringhe o blob.
useIntranetBooleanDeprecato. Questo indica a fetch di risolvere l'URL specificato all'interno dell'intranet collegata al tuo dominio tramite SDC (non più supportato)
validateHttpsCertificatesBooleanSe false, il recupero ignora eventuali certificati non validi per le richieste HTTPS. Il valore predefinito è true.
followRedirectsBooleanSe false il recupero non segue automaticamente i reindirizzamenti HTTP, viene restituita la risposta HTTP originale. Il valore predefinito è true.
muteHttpExceptionsBooleanSe true, il recupero non genera un'eccezione se il codice di risposta indica un errore, ma restituisce HTTPResponse. Il valore predefinito è false.
escapingBooleanSe i caratteri riservati false nell'URL non sono stati preceduti da carattere di escape. Il valore predefinito è true.

Invio

Object: una mappa di nomi di campo a valore. La mappa contiene almeno le seguenti chiavi: url, method, contentType, payload e headers.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

  • https://www.googleapis.com/auth/script.external_request