PauloMelo
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
25 additions and
3 deletions
-
egui_glium/src/http.rs
-
egui_web/src/http.rs
-
epi/src/lib.rs
|
|
@ -3,9 +3,15 @@ pub use epi::http::{Request, Response}; |
|
|
|
/// NOTE: Ok(..) is returned on network error.
|
|
|
|
/// Err is only for failure to use the fetch api.
|
|
|
|
pub fn fetch_blocking(request: &Request) -> Result<Response, String> { |
|
|
|
let Request { method, url } = request; |
|
|
|
let Request { method, url, body } = request; |
|
|
|
|
|
|
|
let resp = ureq::request(method, url).set("Accept", "*/*").call(); |
|
|
|
let req = ureq::request(method, url).set("Accept", "*/*"); |
|
|
|
let resp = if body.is_empty() { |
|
|
|
req.call() |
|
|
|
} else { |
|
|
|
req.set("Content-Type", "text/plain; charset=utf-8") |
|
|
|
.send_string(body) |
|
|
|
}; |
|
|
|
|
|
|
|
let (ok, resp) = match resp { |
|
|
|
Ok(resp) => (true, resp), |
|
|
|
|
|
@ -13,7 +13,7 @@ pub async fn fetch_async(request: &Request) -> Result<Response, String> { |
|
|
|
/// NOTE: Ok(..) is returned on network error.
|
|
|
|
/// Err is only for failure to use the fetch api.
|
|
|
|
async fn fetch_jsvalue(request: &Request) -> Result<Response, JsValue> { |
|
|
|
let Request { method, url } = request; |
|
|
|
let Request { method, url, body } = request; |
|
|
|
|
|
|
|
// https://rustwasm.github.io/wasm-bindgen/examples/fetch.html
|
|
|
|
|
|
|
@ -24,6 +24,10 @@ async fn fetch_jsvalue(request: &Request) -> Result<Response, JsValue> { |
|
|
|
opts.method(method); |
|
|
|
opts.mode(web_sys::RequestMode::Cors); |
|
|
|
|
|
|
|
if !body.is_empty() { |
|
|
|
opts.body(Some(&JsValue::from_str(body))); |
|
|
|
} |
|
|
|
|
|
|
|
let request = web_sys::Request::new_with_str_and_init(&url, &opts)?; |
|
|
|
request.headers().set("Accept", "*/*")?; |
|
|
|
|
|
|
|
|
|
@ -263,6 +263,8 @@ pub mod http { |
|
|
|
pub method: String, |
|
|
|
/// https://…
|
|
|
|
pub url: String, |
|
|
|
/// x-www-form-urlencoded body
|
|
|
|
pub body: String, |
|
|
|
} |
|
|
|
|
|
|
|
impl Request { |
|
|
@ -271,6 +273,16 @@ pub mod http { |
|
|
|
Self { |
|
|
|
method: "GET".to_owned(), |
|
|
|
url: url.into(), |
|
|
|
body: "".to_string(), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// Create a `POST` requests with the give url and body.
|
|
|
|
pub fn post(url: impl Into<String>, body: impl Into<String>) -> Self { |
|
|
|
Self { |
|
|
|
method: "POST".to_owned(), |
|
|
|
url: url.into(), |
|
|
|
body: body.into(), |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|