Bagikan melalui


Web.Contents

Sintaksis

 
Web.Contents(url as text, optional options as nullable record) as binary

Tentang

Mengembalikan konten yang diunduh dari url sebagai biner. Parameter rekaman opsional, options, dapat disediakan untuk menentukan properti tambahan. Catatan bisa berisi bidang berikut ini:

  • Query: Tambahkan parameter kueri secara terprogram ke URL tanpa harus khawatir tentang melarikan diri.
  • ApiKeyName: Jika situs target memiliki gagasan kunci API, parameter ini dapat digunakan untuk menentukan nama (bukan nilai) parameter kunci yang harus digunakan dalam URL. Nilai kunci aktual disediakan dalam kredensial.
  • Headers: Menentukan nilai ini sebagai rekaman akan menyediakan header tambahan ke permintaan HTTP.
  • Timeout: Menentukan nilai ini sebagai durasi akan mengubah batas waktu untuk permintaan HTTP. Nilai defaultnya adalah 100 detik.
  • ExcludedFromCacheKey: Mengatur nilai ini sebagai daftar akan mengecualikan kunci header HTTP ini agar tidak menjadi bagian dari perhitungan untuk data cache.
  • IsRetry: Menentukan nilai logis ini sebagai benar akan mengabaikan respons yang ada dalam cache saat mengambil data.
  • ManualStatusHandling: Menentukan nilai ini sebagai daftar akan mencegah penanganan bawaan untuk permintaan HTTP yang responsnya memiliki salah satu kode status ini.
  • RelativePath: Menentukan nilai ini sebagai teks akan menambahkannya ke dalam URL dasar sebelum mengajukan permintaan.
  • Content: Menentukan nilai ini mengubah permintaan web dari GET ke POST, menggunakan nilai opsi sebagai konten POST.

Permintaan HTTP dibuat sebagai GET (ketika tidak ada Konten yang ditentukan) atau POST (ketika ada Konten). Permintaan POST hanya dapat dibuat secara anonim.

Header respons HTTP tersedia sebagai metadata pada hasil biner. Di luar konteks konektor data kustom, hanya subkumpulan header respons yang tersedia (karena alasan keamanan).

Contoh 1

Ambil konten "https://bing.com/search?q=Power+Query" menggunakan opsi RelativePath dan Query. Opsi ini dapat digunakan untuk mengkueri URL dasar statis secara dinamis.

Penggunaan

let
    searchText = "Power Query"
in
    Web.Contents(
        "https://www.bing.com",
        [
            RelativePath = "search",
            Query = [q = searchText]
        ]
    )

Output

binary

Contoh 2

Lakukan POST terhadap URL, melewati payload JSON biner dan mengurai respons sebagai JSON.

Penggunaan

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

Output

table

Contoh 3

Sambungkan ke URL aman yang menerima kunci autentikasi sebagai bagian dari string kuerinya. Alih-alih mengodekan kunci rahasia secara permanen di M (yang akan menimbulkan risiko keamanan), kunci dapat disediakan dengan aman dengan menentukan namanya (bukan nilainya) di M, memilih autentikasi API Web, dan memasukkan nilai kunci sebagai bagian dari kredensial API Web. Ketika digunakan dengan cara ini, contoh berikut akan menghasilkan permintaan ke "https://contoso.com/api/customers/get?api_key=******".

Penggunaan

Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"])

Output

binary

Informasi selengkapnya

Penanganan kode status dengan Web.Contents di konektor kustom