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
检索使用RelativePath和Query选项的内容"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