http-types icon indicating copy to clipboard operation
http-types copied to clipboard

`Accept::negotiate` does not handle wildcards correctly

Open jbearer opened this issue 3 years ago • 0 comments

It correctly handles * but not */* and basetype/*. For example, the spec indicates that */* should accept any media type, but the following snippet fails with No suitable Content-Type found

let mut req = Request::new(Method::Get, "http://localhost");
req.append_header("Accept", "*/*");
let mut accept = Accept::from_headers(&req).unwrap().unwrap();
accept.negotiate(&[mime::JSON]).unwrap();

Likewise, this also fails:

let mut req = Request::new(Method::Get, "http://localhost");
req.append_header("Accept", "application/*");
let mut accept = Accept::from_headers(&req).unwrap().unwrap();
accept.negotiate(&[mime::JSON]).unwrap();

jbearer avatar Jun 16 '22 22:06 jbearer