我有一个使用HTTPS协议的java.net.URL对象,例如:
https://www.bla.com
我只需要更改此URL对象的协议部分,这样当我调用它的toString()方法时,我得到这个:
http://www.bla.com
最好的方法是什么?
答案 0 :(得分:13)
您将使用可用的方法:
URL oldUrl = new URL("https://www.bla.com");
URL newUrl = new URL("http", oldUrl.getHost(), oldUrl.getPort(), oldUrl.getFile(), oldUrl.getRef());
有一个更广泛的set()方法需要8个项目,你可能需要更精细的URL。
编辑:正如刚刚向我指出的那样,我没有注意,并且set()受到保护。所以URL在技术上是可变的,但对于我们凡人来说,它是不可改变的。所以你只需构建一个新的URL对象。
答案 1 :(得分:1)
您也可以使用字符串替换:
URL oldUrl = new URL("https://www.bla.com");
String newUrlString = oldUrl.toString().replaceFirst("^https", "http");
URL newUrl = new URL(newUrlString);
答案 2 :(得分:0)
或者您可以使用org.springframework.web.util.UriComponentsBuilder
/ org.springframework.web.util.UriComponents