模块  java.base
软件包  java.net

Class URLStreamHandler


  • public abstract class URLStreamHandlerextends Object
    抽象类URLStreamHandler是所有流协议处理程序的通用超类。 流协议处理程序知道如何为特定协议类型建立连接,例如httphttps

    在大多数情况下, URLStreamHandler子类的实例不是由应用程序直接创建的。 而是在构造URL时第一次遇到协议名称时,会自动加载相应的流协议处理程序。

    从以下版本开始:
    1.0
    另请参见:
    URL(java.lang.String, java.lang.String, int, java.lang.String)
    • 构造方法详细信息

      • URLStreamHandler

        public URLStreamHandler()
    • 方法详细信息

      • openConnection

        protected abstract URLConnection openConnection​(URL u)                                         throws IOException
        打开与URL参数引用的对象的连接。 应该由子类重写此方法。

        如果对于处理程序的协议(例如HTTP或JAR),存在属于以下某个包或其子包之一的公共专用URLConnection子类:java.lang,java.io,java.util,java.net,返回的连接将是该子类。 例如,对于HTTP,将返回HttpURLConnection,对于JAR,将返回JarURLConnection。

        参数
        u - 此连接的URL。
        结果
        一个 URLConnection对象为 URL
        异常
        IOException - 如果在打开连接时发生I / O错误。
      • openConnection

        protected URLConnection openConnection​(URL u,                                       Proxy p)                                throws IOException
        与openConnection(URL)相同,但连接将通过指定的代理进行; 不支持代理的协议处理程序将忽略代理参数并进行正常连接。 调用此方法会抢占系统的默认设置ProxySelector
        参数
        u - 此连接的URL。
        p - 将通过其进行连接的代理。 如果需要直接连接,则应指定Proxy.NO_PROXY。
        结果
        一个 URLConnection对象为 URL
        异常
        IOException - 如果在打开连接时发生I / O错误。
        IllegalArgumentException - 如果u或p为null,或者p的类型错误。
        UnsupportedOperationException - 如果实现协议的子类不支持此方法。
        从以下版本开始:
        1.5
      • parseURL

        protected void parseURL​(URL u,                        String spec,                        int start,                        int limit)
        URL的字符串表示解析为URL对象。

        如果有任何继承的上下文,则它已被复制到URL参数中。

        parseURL的方法URLStreamHandler解析字符串表示,好像它是一个http规范。 大多数URL协议系列都有类似的解析。 具有不同语法的协议的流协议处理程序必须覆盖此例程。

        参数
        u - URL接收解析规范的结果。
        spec - 表示必须解析的URL的 String
        start - 开始解析的字符索引。 这刚好超过了' : '(如果有的话),它指定了协议名称的确定。
        limit - 停止解析的字符位置。 这是字符串的结尾或“ # ”字符的位置(如果存在)。 尖锐符号后的所有信息表示锚点。
      • getDefaultPort

        protected int getDefaultPort()
        返回此处理程序解析的URL的默认端口。 具有默认端口号的处理程序将覆盖此方法。
        结果
        此处理程序解析的 URL的默认端口。
        从以下版本开始:
        1.3
      • equals

        protected boolean equals​(URL u1,                         URL u2)
        提供默认的等于计算。 处理程序可能会覆盖对equals()有不同要求的其他协议。 此方法要求其参数均不为null。 这是由它只由java.net.URL类调用的事实所保证的。
        参数
        u1 - URL对象
        u2 - URL对象
        结果
        true如果两个网址被认为是相等的,即。 它们引用同一文件中的相同片段。
        从以下版本开始:
        1.3
      • hashCode

        protected int hashCode​(URL u)
        提供默认哈希计算。 处理程序可能会覆盖对hashCode计算有不同要求的其他协议。
        参数
        u - URL对象
        结果
        int适合哈希表索引
        从以下版本开始:
        1.3
      • sameFile

        protected boolean sameFile​(URL u1,                           URL u2)
        比较两个url以查看它们是否引用相同的文件,即具有相同的协议,主机,端口和路径。 此方法要求其参数均不为null。 这是由java.net.URL类间接调用它保证的。
        参数
        u1 - URL对象
        u2 - URL对象
        结果
        如果u1和u2引用同一文件,则为true
        从以下版本开始:
        1.3
      • getHostAddress

        protected InetAddress getHostAddress​(URL u)
        获取我们主机的IP地址。 空主机字段或DNS故障将导致空返回。
        参数
        u - URL对象
        结果
        InetAddress表示主机IP地址。
        从以下版本开始:
        1.3
      • hostsEqual

        protected boolean hostsEqual​(URL u1,                             URL u2)
        比较两个URL的主机组件。
        参数
        u1 - 要比较的第一个主机的URL
        u2 - 要比较的第二个主机的URL
        结果
        true当且仅当它们相等时,否则为 false
        从以下版本开始:
        1.3
      • toExternalForm

        protected String toExternalForm​(URL u)
        一个转换 URL特定协议到的 String
        参数
        u - URL。
        结果
        URL参数的字符串表示形式。
      • setURL

        protected void setURL​(URL u,                      String protocol,                      String host,                      int port,                      String authority,                      String userInfo,                      String path,                      String query,                      String ref)
        URL参数的字段设置为指示的值。 只有从URLStreamHandler派生的类才能使用此方法来设置URL字段的值。
        参数
        u - 要修改的URL。
        protocol - 协议名称。
        host - URL的远程主机值。
        port - 远程计算机上的端口。
        authority - URL的权限部分。
        userInfo - URL的userInfo部分。
        path - URL的路径组件。
        query - URL的查询部分。
        ref - 参考。
        异常
        SecurityException - 如果URL的协议处理程序与此不同
        从以下版本开始:
        1.3
      • setURL

        @Deprecatedprotected void setURL​(URL u,                      String protocol,                      String host,                      int port,                      String file,                      String ref)
        Deprecated.
        Use setURL(URL, String, String, int, String, String, String, String);
        URL参数的字段设置为指示的值。 只有从URLStreamHandler派生的类才能使用此方法来设置URL字段的值。
        参数
        u - 要修改的URL。
        protocol - 协议名称。 从1.2开始忽略该值。
        host - URL的远程主机值。
        port - 远程计算机上的端口。
        file - 该文件。
        ref - 参考。
        异常
        SecurityException - 如果URL的协议处理程序与此协议处理程序不同