Fix "Post url contains non-ASCII characters" error (#479)

This commit is contained in:
Mario A 2022-05-21 05:48:59 +00:00 committed by GitHub
parent 7f5bfc04b3
commit 90828cc71c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 1 deletions

1
Cargo.lock generated
View File

@ -596,6 +596,7 @@ dependencies = [
"futures-lite",
"hyper",
"hyper-rustls",
"percent-encoding",
"regex",
"route-recognizer",
"rust-embed",

View File

@ -18,6 +18,7 @@ cookie = "0.16.0"
futures-lite = "1.12.0"
hyper = { version = "0.14.18", features = ["full"] }
hyper-rustls = "0.23.0"
percent-encoding = "2.1.0"
route-recognizer = "0.3.1"
serde_json = "1.0.81"
tokio = { version = "1.18.2", features = ["full"] }

View File

@ -1,6 +1,7 @@
use cached::proc_macro::cached;
use futures_lite::{future::Boxed, FutureExt};
use hyper::{body::Buf, client, Body, Request, Response, Uri};
use percent_encoding::{percent_encode, CONTROLS};
use serde_json::Value;
use std::result::Result;
@ -90,7 +91,7 @@ fn request(url: String, quarantine: bool) -> Boxed<Result<Response<Body>, String
.headers()
.get("Location")
.map(|val| {
let new_url = val.to_str().unwrap_or_default();
let new_url = percent_encode(val.as_bytes(), CONTROLS).to_string();
format!("{}{}raw_json=1", new_url, if new_url.contains('?') { "&" } else { "?" })
})
.unwrap_or_default()