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 的內容。
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
針對 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 中指定秘密金鑰的名稱 (而非其值),選擇 Web API 驗證,並在 Web API 認證中輸入金鑰值,即可安全地提供金鑰,而不是在 M 中將秘密金鑰進行硬式編碼 (可能會造成安全性風險)。 以這種方式使用時,下列範例會產生對 "https://contoso.com/api/customers/get?api_key=******"
的要求。
使用方式
Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"])
輸出
binary