Module  java.base
软件包  java.net

Class URLStreamHandler



  • public abstract class URLStreamHandler
    extends 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为空,或者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计算。 对于对equals()有不同要求的其他协议可能会被处理程序所掩盖。 该方法要求它的参数都不为空。 这是由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以查看它们是否引用相同的文件,即具有相同的协议,主机,端口和路径。 该方法要求它的参数都不为空。 这是由java.net.URL类间接调用的事实来保证的。
        参数
        u1 - 一个URL对象
        u2 - 一个URL对象
        结果
        如果u1和u2指的是同一个文件,则为true
        从以下版本开始:
        1.3
      • getHostAddress

        protected InetAddress getHostAddress​(URL u)
        获取我们的主机的IP地址。 空主机字段或DNS故障将导致空返回。
        参数
        u - 一个URL对象
        结果
        一个表示主机IP地址的 InetAddress
        从以下版本开始:
        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参数。
      • 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 - userInfo的一部分URL。
        path - URL的路径组件。
        query - URL的查询部分。
        ref - 参考。
        异常
        SecurityException - 如果URL的协议处理程序与此不同
        从以下版本开始:
        1.3
        另请参见:
        URL.set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String)
      • setURL

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