構文
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 (コンテンツが指定されていない場合) または 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