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