Web.Contents
Sintaks
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
: Menentukan nilai ini sebagai daftar akan mengecualikan kunci header HTTP ini agar tidak menjadi bagian dari perhitungan untuk penembolokan data.IsRetry
: Menentukan nilai logis ini sebagai true 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 menambahkannya ke URL dasar sebelum membuat 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 menggunakan "https://bing.com/search?q=Power+Query"
RelativePath
opsi 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]
]
)
Hasil
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
Hasil
table
Contoh 3
Koneksi 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"])
Hasil
binary
Informasi selengkapnya
Penanganan kode status dengan Web.Contents di konektor kustom