Browse Source

trying to make multi form post data and struggling

main
crunk 6 months ago
parent
commit
1cc4ca8661
  1. 5
      Cargo.toml
  2. 33
      src/main.rs

5
Cargo.toml

@ -2,11 +2,10 @@
name = "crunk-update"
version = "0.1.0"
authors = ["crunk <dvanderkleij@gmail.com>"]
edition = "2018"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
clap = { version = "4.0", features = ["derive"] }
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.11.20", features = ["json", "blocking", "multipart"] }

33
src/main.rs

@ -1,6 +1,7 @@
#![deny(warnings)]
use clap::Parser;
use reqwest::blocking::multipart;
/// Search for a pattern in a file and display the lines that contain it.
#[derive(Parser)]
@ -9,27 +10,31 @@ use clap::Parser;
#[command(version = "1.0")]
#[command(about = "post updates to crunk-schedulers", long_about = None)]
struct Cli {
#[arg(long)]
#[arg(short, long)]
url: String,
#[arg(long)]
text: String,
#[arg(short, long, group = "input")]
text: Option<String>,
#[arg(short, long, group = "input")]
file: Option<String>,
}
#[cfg(not(target_arch = "wasm32"))]
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = Cli::parse();
let url = args.url;
let text = args.text;
if text.is_some() {
let client = reqwest::blocking::Client::new();
let res = client.post(url).form(&[("text", text)]).send()?;
println!("{:?}", res);
}
if args.file.is_some() {
let file_name = args.file.as_deref().unwrap_or_default();
let client = reqwest::blocking::Client::new();
let form = multipart::Form::new().file("file", &file_name)?;
let client = reqwest::Client::new();
let res = client.post(url).form(&[("text", text)]).send().await?;
eprintln!("Response: {:?} {}", res.version(), res.status());
eprintln!("Headers: {:#?}\n", res.headers());
let body = res.text().await?;
println!("{}", body);
let res = client.post("your url").multipart(form).send()?;
println!("{:?}", res)
}
Ok(())
}

Loading…
Cancel
Save