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:指定此值會將 Web 要求從 GET 變更為 POST,並使用選項值作為 POST 的內容。

當沒有指定 Content) 或 POST (有 Content) 時,HTTP 要求會當做 GET (進行。 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