Rust имеет без функции HTTP в стандартной библиотеке , так что вы, вероятно, захотите использовать другой ящик (библиотеку) для обработки HTTP-контента.Для этого есть несколько разных ящиков.
reqwest
: «клиентская библиотека HTTP более высокого уровня»
let body = reqwest::get("http://url.com")?.text()?;
chttp
: «практичный клиент HTTPэто интересно использовать. "
let mut response = chttp::get("http://url.com").unwrap();
let body = response.body_mut().text().unwrap();
ureq
:" Библиотека минимальных HTTP-запросов "
let body = ureq::get("http://url.com")
.call()
.into_string()
.unwrap();
curl
: "Привязка Rust к libcurl для выполнения HTTP-запросов"
use curl::easy::Easy;
// First write everything into a `Vec<u8>`
let mut data = Vec::new();
let mut handle = Easy::new();
handle.url("http://url.com").unwrap();
{
let mut transfer = handle.transfer();
transfer.write_function(|new_data| {
data.extend_from_slice(new_data);
Ok(new_data.len())
}).unwrap();
transfer.perform().unwrap();
}
// Convert it to `String`
let body = String::from_utf8(data).expect("body is not valid UTF8!");
Hyper - очень популярная библиотека HTTP, но она асинхронная и довольно низкая-уровень.Это делает его слишком сложным для маленьких скриптов.Однако, если вы хотите написать HTTP-сервер, Hyper - верный путь (именно поэтому Hyper используется большинством фреймворков Rust Web).
Многие другие!
Я не смогперечислите все доступные библиотеки в этом ответе.Поэтому не стесняйтесь искать в crates.io другие ящики, которые могут вам помочь.