Udostępnij za pośrednictwem


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ć, optionsaby 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