23.5.3.3. POST 文件到 paste-rs
本实例使用 reqwest::Client
建立与 https://paste.rs 的连接,遵循 reqwest::RequestBuilder
结构体模式。调用 Client::post
方法,以 URL 为参数连接目标,RequestBuilder::body
通过读取文件设置要发送的内容,RequestBuilder::send
方法在文件上传过程中将一直阻塞,直到返回响应消息。最后,read_to_string
返回响应消息并显示在控制台中。
use error_chain::error_chain; use std::fs::File; use std::io::Read; error_chain! { foreign_links { HttpRequest(reqwest::Error); IoError(::std::io::Error); } } #[tokio::main] async fn main() -> Result<()> { let paste_api = "https://paste.rs"; let mut file = File::open("message")?; let mut contents = String::new(); file.read_to_string(&mut contents)?; let client = reqwest::Client::new(); let res = client.post(paste_api) .body(contents) .send() .await?; let response_text = res.text().await?; println!("Your paste is located at: {}",response_text ); Ok(()) }