Web.Contents

Syntaxis

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

Informatie

Retourneert de inhoud die als binair is gedownload url . Er kan een optionele recordparameter optionsworden opgegeven om extra eigenschappen op te geven. De record kan de volgende velden bevatten:

  • Query: Programmatisch queryparameters toevoegen aan de URL zonder dat u zich zorgen hoeft te maken over escapen.
  • ApiKeyName: Als de doelsite een notie van een API-sleutel heeft, kan deze parameter worden gebruikt om de naam (niet de waarde) op te geven van de sleutelparameter die moet worden gebruikt in de URL. De werkelijke sleutelwaarde wordt opgegeven in de referentie.
  • Headers: Als u deze waarde opgeeft als een record, worden extra headers aan een HTTP-aanvraag toegevoegd.
  • Timeout: Als u deze waarde opgeeft als een duur, wordt de time-out voor een HTTP-aanvraag gewijzigd. De standaardwaarde is 100 seconden.
  • ExcludedFromCacheKey: Als u deze waarde opgeeft als een lijst, worden deze HTTP-headersleutels uitgesloten van een deel van de berekening voor het opslaan van gegevens in de cache.
  • IsRetry: Als u deze logische waarde opgeeft als waar, worden bestaande reacties in de cache genegeerd bij het ophalen van gegevens.
  • ManualStatusHandling: Als u deze waarde opgeeft als een lijst, voorkomt u ingebouwde verwerking voor HTTP-aanvragen waarvan het antwoord een van deze statuscodes heeft.
  • RelativePath: Als u deze waarde opgeeft als tekst, wordt deze toegevoegd aan de basis-URL voordat u de aanvraag indient.
  • Content: Als u deze waarde opgeeft, wordt de webaanvraag gewijzigd van een GET in een POST, waarbij de waarde van de optie wordt gebruikt als de inhoud van de POST.

De HTTP-aanvraag wordt gedaan als get (wanneer er geen inhoud is opgegeven) of een POST (wanneer er inhoud is). POST-aanvragen kunnen alleen anoniem worden gedaan.

De headers van het HTTP-antwoord zijn beschikbaar als metagegevens in het binaire resultaat. Buiten de context van een aangepaste gegevensconnector is alleen een subset van antwoordheaders beschikbaar (om veiligheidsredenen).

Voorbeeld 1

Haal de inhoud van het gebruik van "https://bing.com/search?q=Power+Query" de RelativePath en Query opties op. Deze opties kunnen worden gebruikt om dynamisch een query uit te voeren op een statische basis-URL.

Gebruik

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

Uitvoer

binary

Voorbeeld 2

Voer een POST uit op basis van een URL, waarbij een binaire JSON-nettolading wordt doorgegeven en het antwoord wordt geparseerd als JSON.

Gebruik

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

Uitvoer

table

Voorbeeld 3

Verbinding maken naar een beveiligde URL die een verificatiesleutel accepteert als onderdeel van de querytekenreeks. In plaats van de geheime sleutel in M hard te coderen (wat een beveiligingsrisico zou vormen), kan de sleutel veilig worden opgegeven door de naam (niet de waarde) in M op te geven, web-API-verificatie te kiezen en de sleutelwaarde in te voeren als onderdeel van de web-API-referentie. Wanneer dit op deze manier wordt gebruikt, genereert het volgende voorbeeld een aanvraag naar "https://contoso.com/api/customers/get?api_key=******".

Gebruik

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

Uitvoer

binary

Meer informatie

Verwerking van statuscode met Web.Contents in aangepaste connectors