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(())
}