Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 如何将reqwest流转换为actix流?_Rust_Rust Tokio - Fatal编程技术网

Rust 如何将reqwest流转换为actix流?

Rust 如何将reqwest流转换为actix流?,rust,rust-tokio,Rust,Rust Tokio,我正在尝试将reqwest的流转换为actix响应的流,以避免在内存中创建大型Vec: use actix_web::{web, HttpRequest, HttpResponse, Responder}; pub async fn test( req: HttpRequest ) -> impl Responder { let request = reqwest::get("https://www.rust-lang.org").await; if reques

我正在尝试将reqwest的流转换为actix响应的流,以避免在内存中创建大型
Vec

use actix_web::{web, HttpRequest, HttpResponse, Responder};

pub async fn test(
    req: HttpRequest
) -> impl Responder {
    let request = reqwest::get("https://www.rust-lang.org").await;
    if request.is_err() {
        println!("Error: {:?}", request.err());
    }
    let request = request.unwrap();
    let stream = request.bytes_stream();

    HttpResponse::Ok()
        .content_type("text/html")
        .streaming(stream)
}
编译器给了我:

-->src/routes/test.rs:97:10
|
97 |流媒体(流媒体)
|^^^^^^^^^^未为'reqwest::error::error'实现特性'actix_http::error::ResponseError'`
|
=注意:由于'std::convert::From'的impl上对'actix_http::error::error'的要求,因此必需`
=注意:由于'std::convert::Into'for`reqwest::error::error的impl上的要求,因此需要`
我已经尽了我所能,但没有运气:

  • 创建直通
    (甚至不编译,我不擅长转换类型)
  • 为Reqwest错误实现缺少的错误(该错误不是公开的,所以我不能这样做)
  • 无论如何尝试(但不确定是否正确使用)

我编写了一个薄层来连接两个系统,传输错误类型:

很难回答您的问题,因为其中没有一个答案。我们无法说出代码中存在哪些板条箱(及其版本)、类型、特征、字段等。如果您试图重现您的错误(如果可能的话),或者在全新的货运项目中,那么我们将更容易帮助您,然后您的问题将包括附加信息。您可以使用以下方法减少在此处发布的原始代码。谢谢您的问题可能会由的答案来回答。如果没有,请回答您的问题以解释差异。否则,我们可以将此问题标记为已回答。将查看两个答案,谢谢:)