Giter Club home page Giter Club logo

Comments (7)

jhwgh1968 avatar jhwgh1968 commented on July 26, 2024 8

I came across this too, and also implemented it myself.

To aid any future visitors, I have written up a gist which should serve as a good template:
https://gist.github.com/jhwgh1968/3cd073677f74506474bbcbcadeffb0ee

from ureq.

messense avatar messense commented on July 26, 2024 4

FYI, the multipart crate is unmaintained: https://rustsec.org/advisories/RUSTSEC-2023-0050.html

I'd love to see ureq to gain builtin support for multipart so we don't need to depend on an unmaintained crate.

See also PyO3/maturin#1858

from ureq.

flyInRust avatar flyInRust commented on July 26, 2024 1

i implemented a multipart toolkit for ureq:
ureq_multipart

usage:

`
use ureq_multipart::MultipartBuilder;

let (content_type,data) = MultipartBuilder::new()
.add_file("test","/home/feiy/Desktop/1.txt").unwrap()
.finish().unwrap();
let resp: Value = req
.post(&service_url)
.set("Content-Type", &content_type)
.send_bytes(&data)?
.into_json()?
`

from ureq.

algesten avatar algesten commented on July 26, 2024

@elasmojs there isn't any built in support for multipart forms. Constructing the multipart is easy enough though – I was briefly looking through crates.io, but can't find a framework agnostic impl. Could be I didn't look hard enough, or that that someone really ought to build a generic multipart builder.

I think the API should look something like this:

let multi = MultipartBuilder::new()
  .addText("Some text") // Content-Disposition: form-data; name="text"
  .addFile("myfile.txt") // Content-Disposition: form-data; name="file1"; filename="myfile.txt"
  .build().unwrap(); // delay io errors to here

let res = ureq::post("https://my-fine.server")
  .set("content-length", multi.len())
  .set("content-type", multi.content_type()) // multipart/form-data; boundary=----90519140972754266
  .send(multi.into_reader());

from ureq.

elasmojs avatar elasmojs commented on July 26, 2024

@algesten , thank you for the response. I have solved this by using https://crates.io/crates/multipart

from ureq.

murlakatamenka avatar murlakatamenka commented on July 26, 2024

@elasmojs can you provide an example, please?
I'm not so familiar with web stuff, so I ended up switching to reqwest since it supports multipart forms out of the box. Just curious how it can be achieved with ureq + multipart.

from ureq.

flyInRust avatar flyInRust commented on July 26, 2024

i have public ureq_multipart 1.1 ,add ureq request send multipart method:

use ureq_multipart::MultipartRequest;

let resp: Value = req
            .post(&service_url)
            .send_multipart_file("name","&/home/feiy/Desktop/1.txt")?
            .into_json()?

from ureq.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.