Rust:
การดาวน์โหลดหน้าเว็บ
วิธีการ:
ลองดาวน์โหลดหน้าเว็บโดยใช้ reqwest
crate ของ Rust, ซึ่งเสนอ API แบบอะซิงโครนัสที่ง่ายต่อการทำ HTTP request
ก่อนอื่น, เพิ่ม reqwest
และ tokio
ลงในไฟล์ Cargo.toml
ของคุณ:
[dependencies]
reqwest = "0.11"
tokio = { version = "1", features = ["full"] }
ตอนนี้, ในโค้ด Rust ของคุณ:
use reqwest;
use tokio;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let url = "http://example.com";
let res = reqwest::get(url).await?;
let body = res.text().await?;
println!("Body:\n{}", body);
Ok(())
}
ตัวอย่างผลลัพธ์อาจดูเป็นแบบนี้, แต่เนื้อหาจริงอาจแตกต่างกันไป:
Body:
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
</body>
</html>
รายละเอียดเพิ่มเติม
reqwest
crate เป็นหนึ่งในวิธีที่ง่ายที่สุดในการดาวน์โหลดเนื้อหาเว็บใน Rust มันถูกพัฒนาขึ้นมาจากไลบรารี HTTP รุ่นก่อนๆ, โดยให้ทั้งส่วนติดต่อแบบซิงโครนัสและแบบอะซิงโครนัส
ทางเลือกอื่นรวมถึงไลบรารีที่มีระดับต่ำกว่าเช่น hyper
(ซึ่ง reqwest
เองก็ใช้ใต้ฮูด), หรือใช้การผูก curl
สำหรับ Rust
ขั้นตอนหลักในการดาวน์โหลดหน้าเว็บประกอบด้วยการทำ HTTP GET request และการประมวลผลคำตอบ การเขียนโปรแกรมแบบอะซิงโครนัสด้วย tokio
หมายความว่าแอปของคุณยังคงตอบสนองขณะที่การดำเนินการของเครือข่ายเสร็จสิ้น