Web.Contents

Sintassi

 
Web.Contents(url as text, optional options as nullable record) as binary

Informazioni su

Restituisce il contenuto scaricato da url come binario. È possibile fornire un parametro di record facoltativo, options, per specificare proprietà aggiuntive. Il record può contenere i campi seguenti:

  • Query: aggiungere parametri di query a livello di codice all'URL senza doversi preoccupare dell'escape.
  • ApiKeyName: se il sito di destinazione riconosce una chiave API, questo parametro può essere usato per specificare il nome, non il valore, del parametro chiave che deve essere usato nell'URL. Il valore di chiave effettivo viene specificato nella credenziale.
  • Headers: se si specifica questo valore come record, verranno fornite intestazioni aggiuntive a una richiesta HTTP.
  • Timeout: se si specifica questo valore come durata, verrà modificato il timeout per una richiesta HTTP. Il valore predefinito è 100 secondi.
  • ExcludedFromCacheKey: se si specifica questo valore come elenco, le chiavi di intestazione HTTP verranno escluse dal calcolo per la memorizzazione dei dati nella cache.
  • IsRetry: se si specifica questo valore logico come true, durante il recupero dei dati verrà ignorata qualsiasi risposta esistente nella cache.
  • ManualStatusHandling: se si specifica questo valore come elenco, si eviterà la gestione predefinita per le richieste HTTP la cui risposta presenta uno di questi codici di stato.
  • RelativePath: se si specifica questo valore come testo, questo viene aggiunto all'URL di base prima di effettuare la richiesta.
  • Content: se si specifica questo valore, la richiesta Web viene modificata da GET a POST, usando il valore dell'opzione come contenuto della richiesta POST.

La richiesta HTTP viene effettuata come GET (quando non è specificato alcun contenuto) o POST (quando è presente contenuto). Le richieste POST possono essere effettuate solo in modo anonimo.

Le intestazioni della risposta HTTP sono disponibili come metadati nel risultato binario. Al di fuori di un contesto del connettore dati personalizzato, è disponibile solo un subset di intestazioni della risposta (per motivi di sicurezza).

Esempio 1

Recuperare il contenuto di "https://bing.com/search?q=Power+Query" utilizzando le opzioni RelativePath e Query. Queste opzioni possono essere usate per eseguire query in modo dinamico su un URL di base statico.

Utilizzo

let
    searchText = "Power Query"
in
    Web.Contents(
        "https://www.bing.com",
        [
            RelativePath = "search",
            Query = [q = searchText]
        ]
    )

Output

binary

Esempio 2

Eseguire un POST su un URL, passando un payload JSON binario e analizzando la risposta come JSON.

Utilizzo

let
    url = ...,
    headers = [#"Content-Type" = "application/json"],
    postData = Json.FromValue([x = 235.7, y = 41.53]),
    response = Web.Contents(
        url,
        [
            Headers = headers,
            Content = postData
        ]
    ),
    jsonResponse = Json.Document(response)
in
    jsonResponse

Output

table

Esempio 3

Connettersi a un URL sicuro che accetta una chiave di autenticazione come parte della stringa di query. Anziché impostare come hardcoded la chiave privata in M (che comporta un rischio per la sicurezza), la chiave può essere fornita in modo sicuro specificandone il nome (non il valore) in M, scegliendo l'autenticazione API Web e immettendo il valore della chiave come parte delle credenziali dell'API Web. Se usato in questo modo, l'esempio seguente genererà una richiesta a "https://contoso.com/api/customers/get?api_key=******".

Utilizzo

Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"])

Output

binary

Altre informazioni

Gestione del codice di stato con Web.Contents nei connettori personalizzati