Przeczytaj w języku angielskim

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 jako dane binarne. Opcjonalny parametr rekordu, options, można podać, 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 dla żą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ń dotyczących 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 zablokuje wszelką wbudowaną obsługę żądań HTTP, bez względu na odpowiedź zawierającą 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 czym wartość opcji służy jako zawartość 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 binarnym wyniku. 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" przy użyciu opcji 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 żądanie POST względem adresu URL, przekazując binarny ładunek JSON i analizując 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łącz się z bezpiecznym adresem 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 ten sposób poniższy przykład wygeneruje żądanie do "https://contoso.com/api/customers/get?api_key=******".

Użycie

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

Wyjście

binary

Więcej informacji

Obsługa kodów stanu za pomocą Web.Contents w niestandardowych łącznikach