Crate hyper_multipart_rfc7578

Source
Expand description

This crate contains an implementation of the multipart/form-data media type described in RFC 7578 for hyper.

§Usage

Declare the dependency:

[dependencies]
hyper-multipart-rfc7578 = "0.8"

Import the crate:

use hyper_multipart_rfc7578 as multipart;

§Example:

With a custom client:

use hyper_multipart_rfc7578 as hyper_multipart;

use hyper::Request;
use hyper_multipart::client::{self, multipart};
use hyper_util::{
    client::legacy::{connect::HttpConnector, Builder, Client},
    rt::TokioExecutor,
};

#[tokio::main]
async fn main() {
    let client = Builder::new(TokioExecutor::new()).build_http();
    let mut form = multipart::Form::default();

    form.add_text("test", "Hello World");

    let mut req_builder = Request::get("http://localhost/upload");
    let req = form.set_body::<multipart::Body>(req_builder).unwrap();

    if let Ok(_) = client.request(req).await {
        println!("done...");
    } else {
        eprintln!("an error occurred");
    }
}

With a default client:

use hyper_multipart_rfc7578 as hyper_multipart;

use hyper::Request;
use hyper_util::{
    client::legacy::{connect::HttpConnector, Builder, Client},
    rt::TokioExecutor,
};

use hyper_multipart::client::{self, multipart};

#[tokio::main]
async fn main() {
    let client = Builder::new(TokioExecutor::new()).build_http();
    let mut form = multipart::Form::default();

    form.add_text("test", "Hello World");

    let mut req_builder = Request::get("http://localhost/upload");
    let req = form.set_body::<multipart::Body>(req_builder).unwrap();

    if let Ok(_) = client.request(req).await {
        println!("done...");
    } else {
        eprintln!("an error occurred");
    }
}

Modules§

client