Web.Contents

Syntax

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

About

返回从 url 二进制文件下载的内容。 可以提供可选的记录参数 options来指定其他属性。 该记录可以包含以下字段:

  • Query:以编程方式将查询参数添加到 URL,而无需担心转义。
  • ApiKeyName:如果目标站点具有 API 密钥的概念,则此参数可用于指定必须在 URL 中使用的密钥参数的名称(而不是值)。 凭据中提供了实际的密钥值。
  • Headers:将此值指定为记录将为 HTTP 请求提供其他标头。
  • Timeout:将此值指定为持续时间将更改 HTTP 请求的超时。 默认值为 100 秒。
  • ExcludedFromCacheKey:将此值指定为列表将排除这些 HTTP 标头密钥作为缓存数据的计算的一部分。
  • IsRetry:将此逻辑值指定为 true 会在提取数据时忽略缓存中的任何现有响应。
  • ManualStatusHandling:将此值指定为列表将阻止对其响应具有以下状态代码之一的 HTTP 请求的任何内置处理。
  • RelativePath:在发出请求之前,将此值指定为文本将其追加到基 URL。
  • Content:指定此值会将 WEB 请求从 GET 更改为 POST,并使用选项的值作为 POST 的内容。

HTTP 请求以 GET(未指定内容时)或 POST(如果有内容时)的形式发出。 POST 请求只能匿名发出。

HTTP 响应的标头可用作二进制结果的元数据。 在自定义数据连接器上下文之外,只有一部分响应标头可用(出于安全原因)。

示例 1

检索使用RelativePathQuery选项的内容"https://bing.com/search?q=Power+Query"。 这些选项可用于动态查询静态基 URL。

用法

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

输出

binary

示例 2

针对 URL 执行 POST,传递二进制 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 中指定密钥名称(而不是其值),选择 Web API 身份验证,并输入密钥值作为 Web API 凭据的一部分即可安全提供。 以这种方式使用时,以下示例将生成一个请求 "https://contoso.com/api/customers/get?api_key=******"

用法

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

输出

binary

详细信息

自定义连接器中的状态代码处理Web.Contents