返回

rust-将请求完全重定向到新 URL

发布时间:2022-07-21 23:36:02 227
# scala

想象一下,我有两个 Web 服务器在 8080 和 8081 这两个端口上运行。我希望在 8080 处侦听的 Web 服务器捕获参数开头的请求v1并将它们转发到在 8081 处侦听的服务器。

例如,一个请求myserver.com:8080/v1/get_friend?name=daniel应该重定向到myserver.com:8081/get_friend?name=daniel. 这应该适用于所有请求类型,而不仅仅是 GET,我希望正文、标题、路径/查询参数等都在那里。

这是我到目前为止所得到的:

let other_webserver_address = format!("http://myserver.com:{}", port+1);

let redirect = warp::path("v1").map(move || {

    warp::redirect::permanent(

        Uri::from_str(other_webserver_address).unwrap(),

    )

});

let routes = redirect.or(index::routes(context));

不幸的是,这只是部分有效,它不包含任何路径参数,它总是只是重定向到给定的 URI 而不添加任何内容。我已经尝试过这样做.and(warp::query::raw()),然后将其附加到重定向中,但是warp 根本不匹配重定向的路由。我也尝试添加.and(any)无济于事。

我应该如何让它工作?

谢谢!

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像