英語で読む

次の方法で共有


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

詳細情報

カスタム コネクタの Web.Contents での状態コードの処理