【问题标题】:HTTP and HTTPS default port number constants in java [duplicate]java中的HTTP和HTTPS默认端口号常量[重复]
【发布时间】:2013-07-17 06:47:31
【问题描述】:

通常,Java 附带大量可使用的合理常量。 IANA 分配的 HTTP 和 HTTPS 默认端口号(80 和 443)将是合理的常量。我检查了 java.net.URL、java.net.HttpURLConnection 和 javax.net.ssl.HttpsURLConnection 的 javadoc,但没有找到它们。这些常量是否在 JavaSE 中的某个地方?如果没有,它们是否在 Tomcat 上的 Web 应用程序可以访问的类中可用,例如org.apace.catalina 还是 coyote?只是因为我不喜欢我的代码中的幻数……

我必须在 URL 组合中这样做吗?

if(port != new URL("http://example.com/").getDefaultPort() &&
        port != new URL("https://example.com/").getDefaultPort()){
    stringBuilder.append(":");
    stringBuilder.append(port);
}

【问题讨论】:

  • 参见:stackoverflow.com/questions/13498275/… 我认为 java 中没有标准定义的端口号常量。
  • 每次只插入端口号
  • 另外,不要使用 StringBuilder 来构建 URL,使用 URI 类。它可以为您完成编码工作。它有许多构造函数,包括一个带有主机/端口号的构造函数
  • 对于 HTTP(S) 端口,我认为没有人对幻数有疑问。将它们声明为常量,我认为没有问题。如果不重建互联网,这些数字不会改变。
  • @fge:感谢URI。还不是很好,但确实好多了:String url = new URI(port == 443 ? "https" : "http", null, host, (port == 80 || port == 443) ? -1 : port, (path != null && path.length() > 0) ? path : "/", null, null).toString();

标签: java port constants


【解决方案1】:
猜你喜欢
  • 2018-04-16
  • 2015-01-14
  • 2012-09-06
  • 1970-01-01
  • 2012-04-24
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多