rust-将请求完全重定向到新 URL
发布时间:2022-07-21 23:36:02 250
相关标签: # 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)无济于事。
我应该如何让它工作?
谢谢!
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报