Web.Contents
Składnia
Web.Contents(url as text, optional options as nullable record) as binary
Informacje
Zwraca zawartość pobraną z url
pliku jako dane binarne. Opcjonalny parametr rekordu , można podać, options
aby określić dodatkowe właściwości. Rekord może zawierać następujące pola:
Query
: Programowe dodawanie parametrów zapytania do adresu URL bez konieczności martwienia się o ucieczkę.ApiKeyName
: Jeśli witryna docelowa ma pojęcie klucza interfejsu API, ten parametr może służyć do określenia nazwy (a nie wartości) parametru klucza, który musi być używany w adresie URL. Rzeczywista wartość klucza jest podana w poświadczeniu.Headers
: Określenie tej wartości jako rekordu spowoduje podanie dodatkowych nagłówków do żądania HTTP.Timeout
: Określenie tej wartości jako czasu trwania spowoduje zmianę limitu czasu żądania HTTP. Wartość domyślna to 100 sekund.ExcludedFromCacheKey
: Określenie tej wartości jako listy spowoduje wykluczenie tych kluczy nagłówka HTTP z części obliczeń dla danych buforowania.IsRetry
: Określenie tej wartości logicznej jako true spowoduje zignorowanie dowolnej istniejącej odpowiedzi w pamięci podręcznej podczas pobierania danych.ManualStatusHandling
: Określenie tej wartości jako listy uniemożliwi wszelkie wbudowane obsługę żądań HTTP, których odpowiedź ma jeden z tych kodów stanu.RelativePath
: Określenie tej wartości jako tekstu powoduje dołączenie jej do podstawowego adresu URL przed wykonaniem żądania.Content
: Określenie tej wartości powoduje zmianę żądania internetowego z żądania GET na post przy użyciu wartości opcji jako zawartości post.
Żądanie HTTP jest wykonywane jako żądanie GET (jeśli nie określono zawartości) lub POST (gdy istnieje zawartość). Żądania POST mogą być wysyłane anonimowo.
Nagłówki odpowiedzi HTTP są dostępne jako metadane w wyniku binarnym. Poza niestandardowym kontekstem łącznika danych dostępny jest tylko podzbiór nagłówków odpowiedzi (ze względów bezpieczeństwa).
Przykład 1
Pobierz zawartość "https://bing.com/search?q=Power+Query"
funkcji RelativePath
i Query
. Te opcje mogą służyć do dynamicznego wykonywania zapytań względem statycznego podstawowego adresu URL.
Użycie
let
searchText = "Power Query"
in
Web.Contents(
"https://www.bing.com",
[
RelativePath = "search",
Query = [q = searchText]
]
)
Wyjście
binary
Przykład 2
Wykonaj post względem adresu URL, przekazując binarny ładunek JSON i analizuje odpowiedź w formacie JSON.
Użycie
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
Wyjście
table
Przykład 3
Połączenie do bezpiecznego adresu URL, który akceptuje klucz uwierzytelniania w ramach ciągu zapytania. Zamiast trwale kodować klucz tajny w języku M (co stanowiłoby zagrożenie bezpieczeństwa), klucz można bezpiecznie podać, określając jego nazwę (a nie jego wartość) w języku M, wybierając uwierzytelnianie internetowego interfejsu API i wprowadzając wartość klucza w ramach poświadczeń internetowego interfejsu API. W przypadku użycia w ten sposób poniższy przykład spowoduje wygenerowanie żądania do "https://contoso.com/api/customers/get?api_key=******"
elementu .
Użycie
Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"])
Wyjście
binary
Więcej informacji
Obsługa kodu stanu za pomocą pliku Web.Contents w łącznikach niestandardowych