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
:この値を指定すると、POST のコンテンツにオプションの値が使用され、Web 要求が GET から POST に変更されます。
HTTP 要求は、GET (Content が指定されていない場合) または POST (Content がある場合) のいずれかで行います。 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