首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改URI的端口

问修改URI的端口
EN

Stack Overflow用户
提问于 2011-06-27 15:53:36
回答 5查看 17.6K关注 0票数 16

在Java语言中,URI类是不可变的。

下面是我当前修改端口的方式:

代码语言:javascript
复制
public URI uriWithPort(URI uri, int port) {
    try {
        return new URI(uri.getScheme(), uri.getUserInfo(), uri.getHost(), port,
                       uri.getPath(), uri.getQuery(), uri.getFragment());
    } catch (URISyntaxException e) {
        LOG.error("Updating URI port failed:",e);
        return uri;
    }
}

有没有更简单的方法?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-27 15:59:27

不,差不多就是这样。‘确实有点冗长,但并不是那么复杂。:-)

如果您正在使用Java而不仅仅是JDK,请参阅使用Java的UriBuilder的Talha Ahmed Khan's answer,它仍然是一行程序,但更优雅。这不是JDK的一部分,但是如果您正在做一个servlet或类似的(或者不介意包含必要的jar)...

票数 5
EN

Stack Overflow用户

发布于 2011-06-27 16:03:05

您也可以使用URIBuider

http://download.oracle.com/javaee/6/api/javax/ws/rs/core/UriBuilder.html

代码语言:javascript
复制
UriBuilder.fromURI(uri).port(port).build("foo", "bar");
票数 27
EN

Stack Overflow用户

发布于 2017-08-24 13:35:49

从现有的URL对象创建新的URL对象似乎是一件简单的事情:

代码语言:javascript
复制
URL originalURL = new URL("http://octopus:345/squid.html");
URL newURL = new URL(originalURL.getProtocol(), originalUrl.getHost(), newPort, originalURL.getFile());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6490014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档