Freigeben über


Web.Contents

Syntax

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

Info

Gibt die von url heruntergeladenen Inhalte im Binärformat zurück. Ein optionaler Datensatzparameter options kann angegeben werden, um zusätzliche Eigenschaften anzugeben. Der Datensatz kann die folgenden Felder enthalten:

  • Query: Fügen Sie der URL programmgesteuert Abfrageparameter hinzu, ohne sich um Escapezeichen kümmern zu müssen.
  • ApiKeyName: Wenn die Zielwebsite einen API-Schlüssel vorsieht, kann mit diesem Parameter der Name (nicht der Wert) des Schlüsselparameters angegeben werden, der in der URL verwendet werden muss. Der tatsächliche Schlüsselwert wird in den Anmeldeinformationen bereitgestellt.
  • Headers: Wenn Sie diesen Wert als Datensatz angeben, werden zusätzliche Header für eine HTTP-Anforderung bereitgestellt.
  • Timeout: Wenn Sie diesen Wert als Zeitraum angeben, wird das Timeout einer HTTP-Anforderung geändert. Der Standardwert ist 100 Sekunden.
  • ExcludedFromCacheKey: Wenn Sie diesen Wert als Liste angeben, werden diese HTTP-Headerschlüssel nicht in die Berechnung für das Zwischenspeichern von Daten einbezogen.
  • IsRetry: Wenn Sie für diesen logischen Wert TRUE angeben, wird jede vorhandene Antwort im Cache beim Abrufen von Daten ignoriert.
  • ManualStatusHandling: Wenn Sie diesen Wert als Liste angeben, wird jede integrierte Verarbeitung von HTTP-Anforderungen verhindert, deren Antwort einen dieser Statuscodes aufweist.
  • RelativePath: Wenn Sie diesen Wert als Text angeben, wird der Wert an die Basis-URL angefügt, bevor die Anforderung gestellt wird.
  • Content: Das Angeben dieses Werts ändert die Webanforderung von GET in POST, wobei der Wert der Option als Inhalt von POST verwendet wird.

Die HTTP-Anforderung wird entweder als GET (wenn kein Inhalt angegeben wird) oder als POST (wenn Inhalt vorhanden ist) ausgeführt. POST-Anforderungen dürfen nur anonym erfolgen.

Die Header der HTTP-Antwort sind als Metadaten für das binäre Ergebnis verfügbar. Außerhalb eines benutzerdefinierten Datenconnectors ist nur eine Teilmenge der Antwortheader verfügbar (aus Sicherheitsgründen).

Beispiel 1

Rufen Sie den Inhalt von "https://bing.com/search?q=Power+Query" mithilfe der Optionen RelativePath und Query ab. Diese Optionen können zum dynamischen Abfragen einer statischen Basis-URL verwendet werden.

Verwendung

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

Ausgabe

binary

Beispiel 2

Führen Sie POST für eine URL aus. Übergeben Sie dabei binäre JSON-Nutzdaten, und analysieren Sie die Antwort als JSON.

Verwendung

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

Ausgabe

table

Beispiel 3

Verbindungsherstellung mit einer sicheren URL, die einen Authentifizierungsschlüssel als Teil der Abfragezeichenfolge akzeptiert. Anstelle einer Hartcodierung des geheimen Schlüssels in M (dies würde ein Sicherheitsrisiko darstellen) kann der Schlüssel sicher bereitgestellt werden, indem sein Name (nicht sein Wert) in M angegeben wird, die Web-API-Authentifizierung gewählt und der Schlüsselwert als Teil der Web-API-Anmeldeinformationen eingegeben wird. Bei dieser Art der Verwendung generiert das folgende Beispiel eine Anforderung an "https://contoso.com/api/customers/get?api_key=******".

Verwendung

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

Output

binary

Weitere Informationen

Statuscodebehandlung mit Web.Contents in benutzerdefinierten Connectors