模块 java.base
 java.net

类 URLConnection

java.lang.Object
java.net.URLConnection
已知子类:
HttpURLConnection , JarURLConnection

public abstract class URLConnection extends Object
抽象类 URLConnection 是代表应用程序和 URL 之间的通信链接的所有类的超类。此类的实例可用于读取和写入 URL 引用的资源。

通常,创建到 URL 的连接是一个多步骤过程:

  1. 连接对象是通过调用 URL 上的 openConnection 方法创建的。
  2. 设置参数和一般请求属性被操纵。
  3. 使用 connect 方法建立与远程对象的实际连接。
  4. 远程对象变得可用。可以访问远程对象的标头字段和内容。

使用以下方法修改设置参数:

  • setAllowUserInteraction
  • setDoInput
  • setDoOutput
  • setIfModifiedSince
  • setUseCaches

并使用以下方法修改一般请求属性:

  • setRequestProperty

AllowUserInteractionUseCaches 参数的默认值可以使用方法 setDefaultAllowUserInteractionsetDefaultUseCaches 进行设置。

上述每个set方法都有对应的get方法来检索参数或一般请求属性的值。适用的特定参数和一般请求属性是特定于协议的。

以下方法用于在连接到远程对象后访问标头字段和内容:

  • getContent
  • getHeaderField
  • getInputStream
  • getOutputStream

某些标头字段被频繁访问。方法:

  • getContentEncoding
  • getContentLength
  • getContentType
  • getDate
  • getExpiration
  • getLastModified

提供对这些字段的方便访问。 getContentType方法被getContent方法用来判断远程对象的类型;子类可能会发现覆盖 getContentType 方法很方便。

在通常情况下,可以忽略所有预连接参数和一般请求属性:预连接参数和请求属性默认为合理值。对于此接口的大多数客户端,只有两个有趣的方法:getInputStreamgetContent,它们通过便利方法在 URL 类中进行了镜像。

有关 http 连接的请求属性和标头字段的更多信息,请访问:

 http://www.ietf.org/rfc/rfc2616.txt
 
在请求后调用 URLConnectionInputStreamOutputStream 上的 close() 方法可能释放与此实例关联的网络资源,除非特定协议规范为其指定不同的行为。
自从:
1.0
参见:
  • 字段详细信息

    • url

      protected URL  url
      URL 代表万维网上打开此连接的远程对象。

      该字段的值可以通过getURL方法访问。

      此变量的默认值是 URLConnection 构造函数中 URL 参数的值。

      参见:
    • doInput

      protected boolean doInput
      该变量由setDoInput 方法设置。它的值由 getDoInput 方法返回。

      URL 连接可用于输入和/或输出。将 doInput 标志设置为 true 表示应用程序打算从 URL 连接中读取数据。

      该字段的默认值为 true

      参见:
    • doOutput

      protected boolean doOutput
      该变量由setDoOutput 方法设置。它的值由 getDoOutput 方法返回。

      URL 连接可用于输入和/或输出。将 doOutput 标志设置为 true 表示应用程序打算将数据写入 URL 连接。

      该字段的默认值为 false

      参见:
    • allowUserInteraction

      protected boolean allowUserInteraction
      如果是 true ,则这个 URL 是在允许用户交互(例如弹出身份验证对话框)有意义的上下文中进行检查的。如果是 false ,则不允许用户交互。

      该字段的值可以通过setAllowUserInteraction方法设置。它的值由 getAllowUserInteraction 方法返回。它的默认值是上次调用 setDefaultAllowUserInteraction 方法时参数的值。

      参见:
    • useCaches

      protected boolean useCaches
      如果为 true ,则允许协议尽可能使用缓存。如果为 false ,则协议必须始终尝试获取该对象的新副本。

      该字段由 setUseCaches 方法设置。它的值由 getUseCaches 方法返回。

      它的默认值是上次调用 setDefaultUseCaches 方法时给出的值。

      可以使用 setDefaultUseCaches(String,boolean) 覆盖每个协议的默认设置。

      参见:
    • ifModifiedSince

      protected long ifModifiedSince
      一些协议支持跳过对象的获取,除非对象最近被修改超过特定时间。

      非零值表示自 1970 年 1 月 1 日(格林威治标准时间)以来的毫秒数。仅当该对象比该时间最近被修改时才获取该对象。

      该变量由setIfModifiedSince 方法设置。它的值由 getIfModifiedSince 方法返回。

      该字段的默认值为 0 ,表示必须始终进行提取。

      参见:
    • connected

      protected boolean connected
      如果为 false ,则此连接对象尚未创建到指定 URL 的通信链接。如果 true ,通信链接已经建立。
  • 构造方法详细信息

    • URLConnection

      protected URLConnection(URL  url)
      构造到指定 URL 的 URL 连接。未创建与 URL 引用的对象的连接。
      参数:
      url - 指定的 URL。
  • 方法详情

    • getFileNameMap

      public static FileNameMap  getFileNameMap()
      从数据文件加载文件名映射(模拟表)。它将首先尝试加载由“content.types.user.table”属性定义的用户特定表。如果失败,它会尝试加载默认的内置表。
      返回:
      文件名映射
      自从:
      1.2
      参见:
    • setFileNameMap

      public static void setFileNameMap(FileNameMap  map)
      设置 FileNameMap。

      如果有安全管理器,此方法首先调用安全管理器的checkSetFactory方法以确保允许操作。这可能会导致 SecurityException。

      参数:
      map - 要设置的 FileNameMap
      抛出:
      SecurityException - 如果安全管理器存在且其 checkSetFactory 方法不允许该操作。
      自从:
      1.2
      参见:
    • connect

      public abstract void connect() throws IOException
      如果尚未建立此类连接,则打开此 URL 引用的资源的通信链接。

      如果在连接已打开时调用 connect 方法(由具有值 trueconnected 字段指示),则调用将被忽略。

      URLConnection 对象经历两个阶段:首先创建它们,然后连接它们。在创建之后和连接之前,可以指定各种选项(例如,doInput 和 UseCaches)。连接后,尝试设置它们是错误的。如有必要,依赖于连接的操作(如 getContentLength)将隐式执行连接。

      抛出:
      SocketTimeoutException - 如果在建立连接之前超时到期
      IOException - 如果在打开连接时发生 I/O 错误。
      参见:
    • setConnectTimeout

      public void setConnectTimeout(int timeout)
      设置指定的超时值(以毫秒为单位),以在打开指向此 URLConnection 引用的资源的通信链接时使用。如果在建立连接之前超时到期,则会引发 java.net.SocketTimeoutException。零超时被解释为无限超时。

      此方法的某些非标准实现可能会忽略指定的超时。要查看连接超时设置,请调用 getConnectTimeout()。

      参数:
      timeout - 一个 int,以毫秒为单位指定连接超时值
      抛出:
      IllegalArgumentException - 如果超时参数为负
      自从:
      1.5
      参见:
    • getConnectTimeout

      public int getConnectTimeout()
      返回连接超时设置。

      返回 0 意味着该选项被禁用(即无限超时)。

      返回:
      一个 int 表示以毫秒为单位的连接超时值
      自从:
      1.5
      参见:
    • setReadTimeout

      public void setReadTimeout(int timeout)
      将读取超时设置为指定的超时,以毫秒为单位。非零值指定在与资源建立连接时从输入流读取时的超时。如果超时在有数据可供读取之前到期,则会引发 java.net.SocketTimeoutException。零超时被解释为无限超时。

      此方法的某些非标准实现会忽略指定的超时。要查看读取超时设置,请调用 getReadTimeout()。

      参数:
      timeout - 一个 int 指定要使用的超时值(以毫秒为单位)
      抛出:
      IllegalArgumentException - 如果超时参数为负
      自从:
      1.5
      参见:
    • getReadTimeout

      public int getReadTimeout()
      返回读取超时设置。返回 0 意味着该选项被禁用(即无限超时)。
      返回:
      一个 int 表示以毫秒为单位的读取超时值
      自从:
      1.5
      参见:
    • getURL

      public URL  getURL()
      返回此 URLConnectionURL 字段的值。
      返回:
      这个 URLConnectionURL 字段的值。
      参见:
    • getContentLength

      public int getContentLength()
      返回 content-length 标头字段的值。

      笔记: getContentLengthLong() 应该优于此方法,因为它返回 long 而不是,因此更便携。

      返回:
      此连接的 URL 引用的资源的内容长度,-1 如果内容长度未知,或者内容长度大于 Integer.MAX_VALUE。
    • getContentLengthLong

      public long getContentLengthLong()
      以 long 形式返回 content-length 标头字段的值。
      返回:
      此连接的 URL 引用的资源的内容长度,如果内容长度未知,则为 -1
      自从:
      1.7
    • getContentType

      public String  getContentType()
      返回 content-type 标头字段的值。
      返回:
      URL 引用的资源的内容类型,如果不知道则为 null
      参见:
    • getContentEncoding

      public String  getContentEncoding()
      返回 content-encoding 标头字段的值。
      返回:
      URL 引用的资源的内容编码,如果不知道则为 null
      参见:
    • getExpiration

      public long getExpiration()
      返回 expires 标头字段的值。
      返回:
      此 URL 引用的资源的到期日期,如果未知则为 0。该值是自格林威治标准时间 1970 年 1 月 1 日以来的毫秒数。
      参见:
    • getDate

      public long getDate()
      返回 date 标头字段的值。
      返回:
      URL 引用的资源的发送日期,如果不知道则为 0。返回值是自格林威治标准时间 1970 年 1 月 1 日以来的毫秒数。
      参见:
    • getLastModified

      public long getLastModified()
      返回 last-modified 标头字段的值。结果是自格林威治标准时间 1970 年 1 月 1 日以来的毫秒数。
      返回:
      URLConnection 引用的资源的最后修改日期,如果不知道则为 0。
      参见:
    • getHeaderField

      public String  getHeaderField(String  name)
      返回命名标头字段的值。

      如果在多次使用可能不同的值设置相同标头的连接上调用,则仅返回最后一个值。

      参数:
      name - 标题字段的名称。
      返回:
      命名标头字段的值,或者 null 如果标头中没有这样的字段。
    • getHeaderFields

      public Map <String ,List <String >> getHeaderFields()
      返回标头字段的不可修改的映射。映射键是表示响应标头字段名称的字符串。每个 Map 值都是不可修改的字符串列表,表示相应的字段值。此方法被 URLConnection 的子类覆盖。在这些方法的实现中,如果一个给定的键有多个对应的值,它们必须按照它们被添加的顺序返回,保持插入顺序。
      实现要求:
      此方法的默认实现始终返回一个空映射。
      返回:
      标头字段的映射
      自从:
      1.4
    • getHeaderFieldInt

      public int getHeaderFieldInt(String  name, int Default)
      返回解析为数字的命名字段的值。

      这种形式的 getHeaderField 存在是因为某些连接类型(例如 http-ng )具有预解析的标头。该连接类型的类可以覆盖此方法并使解析短路。

      参数:
      name - 标头字段的名称。
      Default - 默认值。
      返回:
      命名字段的值,解析为整数。如果该字段丢失或格式错误,则返回 Default 值。
    • getHeaderFieldLong

      public long getHeaderFieldLong(String  name, long Default)
      返回解析为数字的命名字段的值。

      这种形式的 getHeaderField 存在是因为某些连接类型(例如 http-ng )具有预解析的标头。该连接类型的类可以覆盖此方法并使解析短路。

      参数:
      name - 标头字段的名称。
      Default - 默认值。
      返回:
      命名字段的值,解析为 long。如果该字段丢失或格式错误,则返回 Default 值。
      自从:
      1.7
    • getHeaderFieldDate

      public long getHeaderFieldDate(String  name, long Default)
      返回解析为日期的命名字段的值。结果是自 1970 年 1 月 1 日 GMT 以来的毫秒数,由命名字段表示。

      这种形式的 getHeaderField 存在是因为某些连接类型(例如 http-ng )具有预解析的标头。该连接类型的类可以覆盖此方法并使解析短路。

      参数:
      name - 标头字段的名称。
      Default - 默认值。
      返回:
      字段的值,解析为日期。如果该字段丢失或格式错误,则返回 Default 参数的值。
    • getHeaderFieldKey

      public String  getHeaderFieldKey(int n)
      返回 n 的密钥标题字段。一些实现可能会处理0头字段是特殊的,在这种情况下,getHeaderField(0) 可能返回一些值,但 getHeaderFieldKey(0) 返回 null。对于 n > 0 ,如果字段少于 n+1,则返回 null
      参数:
      n - 一个索引,其中 n>=0
      返回:
      n 的关键头字段,或者 null 如果在 n > 0 时少于 n+1 字段。
    • getHeaderField

      public String  getHeaderField(int n)
      返回 n 的值标题字段。如果字段少于 n+1,则返回 null

      此方法可与getHeaderFieldKey 方法结合使用,以遍历消息中的所有标头。

      参数:
      n - 一个索引,其中 n>=0
      返回:
      n的值标题字段或 null 如果少于 n+1 字段
      参见:
    • getContent

      public Object  getContent() throws IOException
      检索此 URL 连接的内容。

      此方法首先通过调用getContentType 方法确定对象的内容类型。如果这是应用程序第一次看到该特定内容类型,则会为该内容类型创建一个内容处理程序。

      这是按如下方式完成的:

      1. 如果应用程序使用 setContentHandlerFactory 方法设置了内容处理程序工厂实例,则以内容类型作为参数调用该实例的 createContentHandler 方法;结果是该内容类型的内容处理程序。
      2. 如果尚未设置ContentHandlerFactory,或者如果工厂的createContentHandler方法返回null,则ServiceLoader机制用于使用系统类加载器定位ContentHandlerFactory实现。工厂定位的顺序是特定于实现的,一个实现可以自由地缓存定位的工厂。如果遇到从 createContentHandler 抛出的 ServiceConfigurationErrorErrorRuntimeException,将传播到调用线程。每个工厂的 createContentHandler 方法(如果已实例化)将使用内容类型被调用,直到工厂返回非空值或所有工厂都已用尽。
      3. 如果失败,此方法会尝试加载 ContentHandler 定义的内容处理程序类。如果该类不存在,或者不是 ContentHandler 的子类,则抛出 UnknownServiceException
      返回:
      获取的对象。 instanceof 运算符应该用于确定返回的对象的具体种类。
      抛出:
      IOException - 如果在获取内容时发生 I/O 错误。
      UnknownServiceException - 如果协议不支持内容类型。
      参见:
    • getContent

      public Object  getContent(Class <?>[] classes) throws IOException
      检索此 URL 连接的内容。
      参数:
      classes - 指示请求类型的 Class 数组
      返回:
      获取的对象是类数组中指定类型的第一个匹配项。如果不支持任何请求的类型,则为 null。 instanceof 运算符应用于确定返回的对象的具体种类。
      抛出:
      IOException - 如果在获取内容时发生 I/O 错误。
      UnknownServiceException - 如果协议不支持内容类型。
      自从:
      1.3
      参见:
    • getPermission

      public Permission  getPermission() throws IOException
      返回一个权限对象,表示建立此对象所表示的连接所需的权限。如果建立连接不需要权限,则此方法返回 null。默认情况下,此方法返回 java.security.AllPermission 。子类应该覆盖此方法并返回最能代表与 URL 建立连接所需的权限的权限。例如,表示 file: URL 的 URLConnection 将返回 java.io.FilePermission 对象。

      返回的权限可能取决于连接的状态。例如,连接前和连接后的权限可能不同。例如,一个 HTTP 服务,比如 foo.com,可能会将连接重定向到另一个主机,比如 bar.com。连接前连接返回的权限代表连接到foo.com需要的权限,连接后返回的是连接到bar.com的权限。

      权限通常用于两个目的:保护通过 URLConnections 获得的对象的缓存,以及检查接收者了解特定 URL 的权利。第一种情况,应该获得权限after对象已经获得。例如,在 HTTP 连接中,这将表示连接到最终从中获取数据的主机的权限。在第二种情况下,应获得许可并测试before连接。

      返回:
      表示建立此 URLConnection 表示的连接所需的权限的权限对象。
      抛出:
      IOException - 如果权限的计算需要网络或文件 I/O,并且在计算时发生异常。
    • getInputStream

      public InputStream  getInputStream() throws IOException
      返回从此打开的连接读取的输入流。如果读取超时在数据可供读取之前到期,则在从返回的输入流读取时会抛出 SocketTimeoutException。
      API 注意:
      此方法返回的 InputStream 可以包装一个 InflaterInputStream ,其 read(byte[], int, int) 方法可以修改输出缓冲区的任何元素。
      返回:
      从此打开的连接读取的输入流。
      抛出:
      IOException - 如果在创建输入流时发生 I/O 错误。
      UnknownServiceException - 如果协议不支持输入。
      参见:
    • getOutputStream

      public OutputStream  getOutputStream() throws IOException
      返回写入此连接的输出流。
      返回:
      写入此连接的输出流。
      抛出:
      IOException - 如果在创建输出流时发生 I/O 错误。
      UnknownServiceException - 如果协议不支持输出。
    • toString

      public String  toString()
      返回此 URL 连接的 String 表示。
      重写:
      toString 在类 Object
      返回:
      这个 URLConnection 的字符串表示。
    • setDoInput

      public void setDoInput(boolean doinput)
      将此 URLConnectiondoInput 字段的值设置为指定值。

      URL 连接可用于输入和/或输出。如果您打算使用 URL 连接进行输入,则将 doInput 标志设置为 true,否则设置为 false。默认为真。

      参数:
      doinput - 新值。
      抛出:
      IllegalStateException - 如果已经连接
      参见:
    • getDoInput

      public boolean getDoInput()
      返回此 URLConnectiondoInput 标志的值。
      返回:
      这个 URLConnectiondoInput 标志的值。
      参见:
    • setDoOutput

      public void setDoOutput(boolean dooutput)
      将此 URLConnectiondoOutput 字段的值设置为指定值。

      URL 连接可用于输入和/或输出。如果您打算使用 URL 连接进行输出,则将 doOutput 标志设置为 true,否则设置为 false。默认为假。

      参数:
      dooutput - 新值。
      抛出:
      IllegalStateException - 如果已经连接
      参见:
    • getDoOutput

      public boolean getDoOutput()
      返回此 URLConnectiondoOutput 标志的值。
      返回:
      这个 URLConnectiondoOutput 标志的值。
      参见:
    • setAllowUserInteraction

      public void setAllowUserInteraction(boolean allowuserinteraction)
      设置此 URLConnectionallowUserInteraction 字段的值。
      参数:
      allowuserinteraction - 新值。
      抛出:
      IllegalStateException - 如果已经连接
      参见:
    • getAllowUserInteraction

      public boolean getAllowUserInteraction()
      返回此对象的 allowUserInteraction 字段的值。
      返回:
      此对象的 allowUserInteraction 字段的值。
      参见:
    • setDefaultAllowUserInteraction

      public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
      将所有未来 URLConnection 对象的 allowUserInteraction 字段的默认值设置为指定值。
      参数:
      defaultallowuserinteraction - 新值。
      参见:
    • getDefaultAllowUserInteraction

      public static boolean getDefaultAllowUserInteraction()
      返回 allowUserInteraction 字段的默认值。

      此默认值是“粘性”的,是所有 URLConnections 静态状态的一部分。此标志适用于创建的下一个和所有后续 URLConnections。

      返回:
      allowUserInteraction 字段的默认值。
      参见:
    • setUseCaches

      public void setUseCaches(boolean usecaches)
      将此 URLConnectionuseCaches 字段的值设置为指定值。

      某些协议会缓存文档。有时,能够“通过隧道”并忽略缓存很重要(例如,浏览器中的“重新加载”按钮)。如果连接上的 UseCaches 标志为真,则允许连接使用它可以使用的任何缓存。如果为假,缓存将被忽略。默认值来自 defaultUseCaches,默认为 true。也可以使用 setDefaultUseCaches(String,boolean) 为每个协议设置默认值。

      参数:
      usecaches - 一个 boolean 指示是否允许缓存
      抛出:
      IllegalStateException - 如果已经连接
      参见:
    • getUseCaches

      public boolean getUseCaches()
      返回此 URLConnectionuseCaches 字段的值。
      返回:
      这个 URLConnectionuseCaches 字段的值。
      参见:
    • setIfModifiedSince

      public void setIfModifiedSince(long ifmodifiedsince)
      将此 URLConnectionifModifiedSince 字段的值设置为指定值。
      参数:
      ifmodifiedsince - 新值。
      抛出:
      IllegalStateException - 如果已经连接
      参见:
    • getIfModifiedSince

      public long getIfModifiedSince()
      返回此对象的 ifModifiedSince 字段的值。
      返回:
      此对象的 ifModifiedSince 字段的值。
      参见:
    • getDefaultUseCaches

      public boolean getDefaultUseCaches()
      返回 URLConnectionuseCaches 标志的默认值。

      此默认值是“粘性”的,是所有 URLConnections 静态状态的一部分。此标志适用于创建的下一个和所有后续 URLConnections。可以使用 setDefaultUseCaches(String,boolean) 根据协议覆盖此默认值

      返回:
      URLConnectionuseCaches 标志的默认值。
      参见:
    • setDefaultUseCaches

      public void setDefaultUseCaches(boolean defaultusecaches)
      useCaches 字段的默认值设置为指定值。可以使用 setDefaultUseCaches(String,boolean) 根据协议覆盖此默认值
      参数:
      defaultusecaches - 新值。
      参见:
    • setDefaultUseCaches

      public static void setDefaultUseCaches(String  protocol, boolean defaultVal)
      将命名协议的 useCaches 字段的默认值设置为给定值。此值覆盖 setDefaultUseCaches(boolean) 为给定协议设置的任何默认设置。连续调用此方法会更改设置并影响该协议所有未来连接的默认值。协议名称不区分大小写。
      参数:
      protocol - 为其设置默认值的协议
      defaultVal - 默认情况下是否为给定协议启用缓存
      自从:
      9
    • getDefaultUseCaches

      public static boolean getDefaultUseCaches(String  protocol)
      返回给定协议的 useCaches 标志的默认值。如果为给定协议调用了setDefaultUseCaches(String,boolean) ,则返回该值。否则,如果调用了 setDefaultUseCaches(boolean) ,则返回该值。如果两个方法都未被调用,则返回值为 true 。协议名称不区分大小写。
      参数:
      protocol - 需要 defaultUseCaches 设置的协议
      返回:
      给定协议的 useCaches 标志的默认值。
      自从:
      9
    • setRequestProperty

      public void setRequestProperty(String  key, String  value)
      设置一般请求属性。如果具有键的属性已经存在,则用新值重写它的值。

      注意:HTTP 要求所有可以合法地拥有具有相同键的多个实例的请求属性使用逗号分隔的列表语法,该语法允许将多个属性附加到单个属性中。

      参数:
      key - 请求已知的关键字(例如,“Accept”)。
      value - 与之关联的值。
      抛出:
      IllegalStateException - 如果已经连接
      NullPointerException - 如果键是 null
      参见:
    • addRequestProperty

      public void addRequestProperty(String  key, String  value)
      添加由键值对指定的通用请求属性。此方法不会覆盖与同一键关联的现有值。如果给定子类中使用的协议不支持将值附加到映射,则此方法可能是空操作。
      参数:
      key - 请求已知的关键字(例如,“Accept”)。
      value - 与之关联的值。
      抛出:
      IllegalStateException - 如果已经连接
      NullPointerException - 如果键为空
      自从:
      1.4
      参见:
    • getRequestProperty

      public String  getRequestProperty(String  key)
      返回此连接的命名通用请求属性的值。
      参数:
      key - 请求已知的关键字(例如,“接受”)。
      返回:
      此连接的已命名通用请求属性的值。如果 key 为 null,则返回 null。
      抛出:
      IllegalStateException - 如果已经连接
      参见:
    • getRequestProperties

      public Map <String ,List <String >> getRequestProperties()
      返回此连接的一般请求属性的不可修改的映射。映射键是表示请求标头字段名称的字符串。每个 Map 值都是不可修改的字符串列表,表示相应的字段值。如果通过 addRequestProperty(String, String) 方法为给定键添加了多个值,这些值将按照添加的顺序返回。此方法必须保留此类值的插入顺序。当为给定键添加多个值时,此方法的默认实现会保留插入顺序。这些值按照它们被添加的顺序返回。
      返回:
      此连接的一般请求属性的映射。
      抛出:
      IllegalStateException - 如果已经连接
      自从:
      1.4
    • setDefaultRequestProperty

      @Deprecated public static void setDefaultRequestProperty(String  key, String  value)
      已弃用。
      在获得适当的 URLConnection 实例后,应使用实例特定的 setRequestProperty 方法。调用此方法不会有任何效果。
      设置一般请求属性的默认值。创建 URLConnection 时,会使用这些属性对其进行初始化。
      参数:
      key - 请求已知的关键字(例如,“Accept”)。
      value - 与键关联的值。
      参见:
    • getDefaultRequestProperty

      @Deprecated public static String  getDefaultRequestProperty(String  key)
      已弃用。
      在获得适当的 URLConnection 实例后,应使用实例特定的 getRequestProperty 方法。
      返回默认请求属性的值。为每个连接设置默认请求属性。
      参数:
      key - 请求已知的关键字(例如,“接受”)。
      返回:
      指定键的默认请求属性的值。
      参见:
    • setContentHandlerFactory

      public static void setContentHandlerFactory(ContentHandlerFactory  fac)
      设置应用程序的ContentHandlerFactory。一个应用程序最多只能调用一次。

      ContentHandlerFactory 实例用于从内容类型构造内容处理程序。

      如果有安全管理器,此方法首先调用安全管理器的checkSetFactory方法以确保允许操作。这可能会导致 SecurityException。

      参数:
      fac - 所需的工厂。
      抛出:
      Error - 如果工厂已经定义。
      SecurityException - 如果安全管理器存在且其 checkSetFactory 方法不允许该操作。
      参见:
    • guessContentTypeFromName

      public static String  guessContentTypeFromName(String  fname)
      尝试根据 URL 的指定“文件”部分确定对象的内容类型。这是一个方便的方法,可以由覆盖 getContentType 方法的子类使用。
      参数:
      fname - 文件名。
      返回:
      根据对象的文件名猜测对象的内容类型。
      参见:
    • guessContentTypeFromStream

      public static String  guessContentTypeFromStream(InputStream  is) throws IOException
      尝试根据输入流开头的字符确定输入流的类型。此方法可由覆盖 getContentType 方法的子类使用。

      理想情况下,不需要此例程。但是许多 http 服务返回了不正确的内容类型;此外,还有许多非标准扩展。直接检查字节以确定内容类型通常比相信 http 服务声明的内容类型更准确。

      参数:
      is - 支持标记的输入流。
      返回:
      内容类型的猜测,如果无法确定则为 null
      抛出:
      IOException - 如果在读取输入流时发生 I/O 错误。
      参见: