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
: การระบุค่าตรรกะนี้เป็นค่าจริง จะละเว้นการตอบกลับใด ๆ ที่มีอยู่ในแคชเมื่อดึงข้อมูล -
ManualStatusHandling
: การระบุค่านี้เป็นรายการ จะป้องกันไม่ให้มีการจัดการภายในระบบใด ๆ สําหรับคําขอ HTTP ที่มีการตอบสนองหนึ่งในรหัสสถานะเหล่านี้ -
RelativePath
: การระบุค่านี้เป็นข้อความ จะผนวกเข้ากับ URL พื้นฐานก่อนทําการร้องขอ -
Content
: การระบุค่านี้จะเปลี่ยนแปลงการร้องขอเว็บจาก GET เป็น POST โดยใช้ค่าของตัวเลือกเป็นเนื้อหาของ POST
ระบบจะสร้างคําขอ HTTP เป็น GET (เมื่อไม่ได้ระบุเนื้อหา) หรือโพสต์ (เมื่อมีเนื้อหา) สามารถส่งคําขอ POST ได้โดยไม่ระบุชื่อเท่านั้น
ส่วนหัวของการตอบสนองของ HTTP จะพร้อมใช้งานเป็นเมตาดาต้าในผลลัพธ์ไบนารี นอกขอบเขตของบริบทตัวเชื่อมต่อข้อมูลแบบกําหนดเอง จะมีเฉพาะชุดย่อยของส่วนหัวการตอบสนองเท่านั้น (เพื่อเหตุผลด้านความปลอดภัย)
ตัวอย่างที่ 1
เรียกใช้เนื้อหาของ "https://bing.com/search?q=Power+Query"
โดยใช้ตัวเลือก RelativePath
และ Query
ตัวเลือกเหล่านี้สามารถใช้เพื่อคิวรี URL ฐานแบบคงที่แบบไดนามิก
การใช้งาน
let
searchText = "Power Query"
in
Web.Contents(
"https://www.bing.com",
[
RelativePath = "search",
Query = [q = searchText]
]
)
ผลลัพธ์ของ
binary
ตัวอย่างที่ 2
ดําเนินการโพสต์กับ URL ที่ส่งผ่านส่วนข้อมูล 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 เลือกการรับรองความถูกต้อง API เว็บ และป้อนค่าคีย์เป็นส่วนหนึ่งของข้อมูลประจําตัวของ API เว็บ เมื่อใช้ด้วยวิธีนี้ ตัวอย่างต่อไปนี้จะสร้างคําขอ ไปยัง "https://contoso.com/api/customers/get?api_key=******"
การใช้งาน
Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"])
ผลลัพธ์ของ
binary
ข้อมูลเพิ่มเติม
การจัดการรหัสสถานะด้วย Web.Contents ในตัวเชื่อมต่อแบบกําหนดเอง