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 ในตัวเชื่อมต่อแบบกําหนดเอง