Прочитать на английском

Поделиться через


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.

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

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 в настраиваемых соединителях