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, ช่วยให้คุณทำสิ่งอื่นๆ ขณะรอคำตอบจากเซิร์ฟเวอร์