问答详情
源自:2-2 Java 中的 URL 的应用

关于java中URL类返回端口号是-1的疑问

为什么端口号返回的是-1?没有指定端口使用默认端口默认端口应该是返回80啊?为什么返回-1呢?

提问者:醉卧忆知己 2016-02-17 20:45

个回答

  • LynnShaw
    2016-02-17 23:52:03
    已采纳

    未指定端口号时,getport()返回-1

    如果要返回默认端口号,使用public int getDefaultPort()

    Gets the default port number of the protocol associated with this URL. If the URL scheme or the URLStreamHandler for the URL do not define a default port number, then -1 is returned


  • SoyaDokio
    2016-06-27 23:56:01

    对于还在纠结端口号为-1的朋友,我说两点:
    1、HTTP协议在当初制定时规定,其默认端口号为80,即未申明(省略)端口号的情况下,浏览器自动为其补充上URL中缺失的“:80”部分。关于HTTP协议的其它详情,可查阅RFC 2616。
    2、java.net.URL.getPort()规定,若URL的实例未申明(省略)端口号,则返回值为-1。
    两件事情请区分开来。