Web.Contents
Web.Contents(url as text, optional options as nullable record) as binary
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).
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
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
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
Statuscodebehandlung mit Web.Contents in benutzerdefinierten Connectors