gpt4 book ai didi

Java - 替换 url 中的主机?

转载 作者:搜寻专家 更新时间:2023-10-30 21:24:43 26 4
gpt4 key购买 nike

在 java 中,我想用新的 Host 替换 url 的 Host 部分,其中主机和 url 都作为字符串提供。

这应该考虑主机可以有一个端口的事实,如defined in the RFC

例如,给定以下输入

我应该从正确执行此操作的函数中获得以下输出

有谁知道在 url 中正确执行 Host 替换的任何库或例程?

编辑:对于我的用例,我希望我的主机替换与 java servlet 的响应相匹配。我通过运行本地 Java Web 服务器来尝试这个,然后使用 curl -H 'Host:superduper.com:80' 'http://localhost:8000/testurl' 测试它端点简单地从 request.getRequestURL().toString() 返回 url,其中 request 是一个 HttpServletRequest。它返回了 http://superduper.com/testurl,所以它删除了 http 的默认端口,所以这也是我努力的方向。

最佳答案

Spring 框架提供了UriComponentsBuilder。你可以像这样使用它:

import org.springframework.web.util.UriComponentsBuilder;

String initialUri = "http://localhost/me/out?it=5";
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(initialUri);
String modifiedUri = builder.host("myserver").port("20000").toUriString();
System.out.println(modifiedUri);
// ==> http://myserver:20000/me/out?it=5

在这里您需要在单独的调用中提供主机名和端口以获得正确的编码。

关于Java - 替换 url 中的主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46667342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com