Web.Contents

Синтаксис

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

О программе

Возвращает содержимое, скачаемое из url двоичного файла. Необязательный параметр optionsзаписи может быть предоставлен для указания дополнительных свойств. Запись может содержать следующие поля:

  • Query: программное добавление параметров запроса в URL-адрес без необходимости беспокоиться о выходе.
  • ApiKeyName: если целевой сайт имеет понятие ключа API, этот параметр можно использовать для указания имени (а не значения) параметра ключа, который должен использоваться в URL-адресе. Фактическое значение ключа указывается в учетных данных.
  • Headers: указание этого значения в качестве записи приведет к добавлению дополнительных заголовков в HTTP-запрос.
  • Timeout: указание этого значения в качестве длительности изменит время ожидания для HTTP-запроса. Значение по умолчанию — 100 секунд.
  • ExcludedFromCacheKey: указание этого значения в виде списка исключает эти ключи заголовка HTTP из части вычисления для кэширования данных.
  • IsRetry: указание этого логического значения как true будет игнорировать любой существующий ответ в кэше при получении данных.
  • ManualStatusHandling: указание этого значения в виде списка будет препятствовать любой встроенной обработке HTTP-запросов, ответ которых имеет один из этих кодов состояния.
  • RelativePath: указание этого значения в виде текста добавляет его к базовому URL-адресу перед выполнением запроса.
  • Content: указание этого значения изменяет веб-запрос из GET на POST, используя значение параметра в качестве содержимого POST.

HTTP-запрос создается как GET (если содержимое не указано) или как POST (если содержимое указано). Запросы POST могут создаваться только анонимно.

Заголовки HTTP-ответа доступны в виде метаданных в двоичном результате. Вне пользовательского контекста соединителя данных доступна только часть заголовков ответа (по соображениям безопасности).

Пример 1

Получение содержимого "https://bing.com/search?q=Power+Query" с помощью RelativePath параметров и Query параметров. Эти параметры можно использовать для динамического запроса статического базового URL-адреса.

Использование

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

Выходные данные

binary

Пример 2

Выполните post по URL-адресу, передавая полезные данные JSON двоичного файла JSON и анализируя ответ как JSON.

Использование

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

Выходные данные

table

Пример 3

Подключитесь к безопасному URL-адресу, который принимает ключ проверки подлинности в составе строки запроса. Вместо того, чтобы напрямую указывать секретный ключ в M (что может представлять угрозу для безопасности), ключ можно задать безопасным способом. Для этого необходимо указать имя (а не значение) ключа в M, выбрав проверку подлинности веб-API и указав значение ключа как часть учетных данных веб-API. В следующем примере ключ указывается безопасным способом и создается запрос к "https://contoso.com/api/customers/get?api_key=******".

Использование

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

Выходные данные

binary

Дополнительные сведения

Обработка кода состояния с помощью Web.Contents в пользовательских соединителях