Rust:
ส่งคำขอ HTTP

วิธีการ:

ในการส่งคำขอ GET ใน Rust, เราใช้ ครีต reqwest ขั้นแรก, เพิ่มเข้าไปในไฟล์ Cargo.toml ของคุณ:

[dependencies]
reqwest = "0.11"
tokio = { version = "1", features = ["full"] }

ตอนนี้, เขียนโค้ด Rust แบบ async:

use reqwest;
use tokio;

#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
    let response_text = reqwest::get("https://api.example.com/data")
        .await?
        .text()
        .await?;
    
    println!("คำตอบ: {}", response_text);
    Ok(())
}

ตัวอย่างผลลัพธ์อาจจะดูเหมือนนี้:

คำตอบ: {"key": "value", "hello": "world"}

นั่นคือสิ่งที่ต้องทำเพื่อส่งคำขอ GET ไปยังเอนด์พอยท์!

ลงลึก

คำขอ HTTP เก่าแก่ประมาณหนึ่งในโลกอินเทอร์เน็ต เป็นแกนหลักของการสื่อสารบนเว็บ Rust ใช้ครีตเช่น reqwest เพราะมันไม่ใช่ภาษาเฉพาะเว็บ — ความยืดหยุ่นเป็นสิ่งสำคัญ reqwest ถูกสร้างขึ้นบน hyper ซึ่งเร็วและระดับต่ำ, แต่ reqwest เพิ่มความง่ายในการใช้งานเข้าไปอีก

มีทางเลือกอื่นที่ไม่ใช่ reqwest หรือ? แน่นอน hyper สำหรับผู้ที่ชื่นชอบความเร็ว, surf ถ้าคุณชอบ async Rust หรือ ureq สำหรับความง่าย — ไม่ต้องการความยุ่งยากกับ async

ลึกลงไปอีก, เมื่อคุณส่งคำขอ HTTP, Rust กำลังทำงานในสิ่งที่ภาษาใดๆ ก็ทำ: สร้างการเชื่อมต่อ TCP, ส่งคำขอ HTTP ที่จัดรูปแบบแล้ว, และตีความการตอบกลับแบบดิบ การจัดการคำขอแบบอะซิงโครนัสคือที่มาของความเก่งของ Rust, ช่วยให้คุณทำสิ่งอื่นๆ ขณะรอคำตอบจากเซิร์ฟเวอร์

ดูเพิ่มเติม