模块 java.base
 java.net

类 URLStreamHandler

java.lang.Object
java.net.URLStreamHandler

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

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

自从:
1.0
参见:
  • 构造方法详细信息

    • 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。
      返回:
      URLURLConnection 对象。
      抛出:
      IOException - 如果在打开连接时发生 I/O 错误。
    • openConnection

      protected URLConnection  openConnection(URL  u, Proxy  p) throws IOException
      与 openConnection(URL) 相同,只是连接将通过指定的代理进行;不支持代理的协议处理程序将忽略代理参数并建立正常连接。

      调用此方法会抢占系统的默认 ProxySelector 设置。

      实现要求:
      此方法的默认实现首先检查给定的 URLProxy 是否不为空,然后抛出 UnsupportedOperationException 。子类应使用适当的实现覆盖此方法。
      参数:
      u - 连接到的 URL。
      p - 将通过其建立连接的代理。如果需要直接连接,则应指定 Proxy.NO_PROXY。
      返回:
      URLURLConnection 对象。
      抛出:
      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 参数中。

      URLStreamHandlerparseURL 方法将字符串表示形式解析为 http 规范。大多数 URL 协议系列都有类似的解析。具有不同语法的协议的流协议处理程序必须覆盖此例程。

      参数:
      u - URL 接收解析规范的结果。
      spec - String 表示必须解析的 URL。
      start - 开始解析的字符索引。这是刚刚过去的':'(如果有的话)指定协议名称的确定。
      limit - 停止解析的字符位置。这是字符串的结尾或“#”字符(如果存在)的位置。尖号之后的所有信息都表示锚点。
      抛出:
      IllegalArgumentException - 如果协议处理程序的实现拒绝任何给定参数
      NullPointerException - 如果 unull,或者如果 start < limitspecnull
    • getDefaultPort

      protected int getDefaultPort()
      返回此处理程序解析的 URL 的默认端口。此方法旨在被具有默认端口号的处理程序重写。
      返回:
      此处理程序解析的 URL 的默认端口。
      自从:
      1.3
    • equals

      protected boolean equals(URL  u1, URL  u2)
      提供默认等于计算。可能被对 equals() 有不同要求的其他协议的处理程序重写。此方法要求其参数均不为空。这是由它仅由 java.net.URL 类调用的事实保证的。
      参数:
      u1 - 一个 URL 对象
      u2 - 一个 URL 对象
      返回:
      true 如果两个 url 被认为是相等的,即它们引用同一文件中的同一片段。
      自从:
      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 引用同一个文件则为真
      自从:
      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 参数的字符串表示。
    • 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 的用户信息部分。
      path - URL 的路径部分。
      query - URL 的查询部分。
      ref - 参考。
      抛出:
      SecurityException - 如果 URL 的协议处理程序与此不同
      IllegalArgumentException - 如果协议处理程序的实现拒绝任何给定参数
      NullPointerException - 如果 unull
      自从:
      1.3
    • 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 的协议处理程序与此不同
      IllegalArgumentException - 如果协议处理程序的实现拒绝任何给定参数
      NullPointerException - 如果 unull