Я могу запросить PNG-файл с reqwest, который я могу сохранить в файл через copy()
.
Я хочу переслать изображение в качестве ответа Rocket. Я не знаю, как передать туда содержимое ответа.
Я пытался использовать Content(ContentType::PNG, response)
, но не могу понять, как соответствовать типу, который реализовал черту rocket::response::Responder
. Rocket не может использовать тип Bytes
, возвращаемый response.bytes()
.
#![feature(proc_macro_hygiene, decl_macro)]
extern crate reqwest;
#[macro_use]
extern crate rocket;
use anyhow::Result;
use reqwest::header::USER_AGENT;
use reqwest::Response;
use rocket::http::ContentType;
use rocket::response::content::Content;
#[get("/")]
fn myroute() -> Result<Content<String>, anyhow::Error> {
let client = reqwest::blocking::Client::new();
let response = client.get("https://www.rust-lang.org/static/images/rust-logo-blk.svg")
.header(USER_AGENT, "rust-reqwest")
.send()?;
Ok(Content(ContentType::PNG, response.bytes()))
}
fn rocket() -> rocket::Rocket {
rocket::ignite()
.mount("/", routes![myroute])
}
fn main() {
rocket().launch();
}
[dependencies]
anyhow = "1.0"
rocket = "0.4.2"
reqwest = { version = "0.10.4", features = ["blocking", "json"] }