当前位置 Class Hierarchy (JDK) All Classes (JDK) All Fields and Methods (JDK)

类 java.net.URLConnection

java.lang.Object
   |
   +----java.net.URLConnection

public abstract class URLConnection
extends Object
super class of:
HttpURLConnection

抽象类 URLConnection 是所有表示应用程序与 URL 之间通信链路的类的超类。该类的实例可以用来对由 URL 引用的资源进行读取和写入操作。一般情况下,生成一个对 URL 的连接是一多步过程:

openConnection() connect()
影响对远程资源连接的操纵参数。 与资源的交互:查询头文件域和内容。
---------------------------->
time
  1. 通过调用 URL 的 openConnection 方法产生一连接对象。
  2. 操纵设置参数和一般请求属性。
  3. 使用 connect 方法,实现对远程对象的实际连接。
  4. 远程对象一旦可用,就可以访问远程对象的域和内容。

通过如下的方法修改设置参数:

通过使用如下的方法修改一般请求属性:

AllowUserInteractionUseCaches 参数的缺省值可以通过使用 setDefaultAllowUserInteractionsetDefaultUseCaches 方法来设置。 而一般请求属性的缺省值可以通过方法 setDefaultRequestProperty 来设置 。

上面的每个 set 方法都有相应 get 方法来获取参数和一般请求属性的值。可用的特定参数和一般请求属性是特定于协议的。

对远程对象的连接完成后,用下列方法访问报头域和内容:

确认报头域能够被频繁访问。方法:

提供对这些域的便利访问。 getContentType 方法由 getContent 方法调用以确定远程对象的类型; 子类来覆盖方法 getContentType 可能是有利的。

在通常的情况下,所有的连接前参数和一般请求属性都可以忽略:系统为它们预置合理的值。对大多数该接口的客户机来说,只对两个方法感兴趣:getInputStreamgetObject,一些便捷方法把它们在 URL 类中作了映象。

关于http 连接的有关请求属性和报头域的进一步信息可以在如下站点查阅:

来自:
JDK1.0
参见:
openConnection, connect, getContent, getContentEncoding, getContentLength, getContentType, getDate, getExpiration, getHeaderField, getHeaderField, getInputStream, getLastModified, getOutputStream, setAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setIfModifiedSince, setRequestProperty, setUseCaches

变量索引

allowUserInteraction
若为 true,则该 URL 在允许用户交互的环境里进行检查,这些交互包括弹出一确认对话框。
connected
若为 false ,则该连接对象没有生成对指定 URL 的通信链路。
doInput
该变量由方法 setDoInput 设置。
doOutput
该变量由方法 setDoOutput 设置。
ifModifiedSince
一些协议可以跳过对象获取,除非该对象在一特定时间之后被修改。
url
该 URL 表示在该对象打开的万维网上的远程对象。
useCaches
若为 true ,则允许该协议在任何时侯使用高速缓存。

构造子索引

URLConnection(URL)
构造一到指定 URL 的 URL 连接。

方法索引

connect()
如果一连接尚未建立,则打开一个到由该 URL 引用的资源的通信链路。
getAllowUserInteraction()
返回该对象的 allowUserInteraction 域的值。
getContent()
获取该 URL 连接的内容。
getContentEncoding()
返回 content-encoding 的报头域的值。
getContentLength()
返回 content-length 的报头域的值。
getContentType()
返回 content-type 的报头域的值。
getDate()
返回 date 的报头域的值。
getDefaultAllowUserInteraction()
返回该对象的 allowUserInteraction 域的缺省值。
getDefaultRequestProperty(String)
返回请求属性的缺省值 。 
getDefaultUseCaches()
返回 URLConnectionuseCaches 标志的缺省值。
getDoInput()
返回 URLConnectiondoInput 标志的值。
getDoOutput()
返回 URLConnectiondoOutput 标志的值。
getExpiration()
返回 expires 的报头域的值。
getFileNameMap()
返回 FileNameMap 。
getHeaderField(int)
返回第 nth 个报头域的值。
getHeaderField(String)
返回指定的报头域的值。
getHeaderFieldDate(String, long)
返回以日期分析的命名域的值。
getHeaderFieldInt(String, int)
返回以数值分析的命名域的值。
getHeaderFieldKey(int)
返回第 nth 个报头域的关键字。
getIfModifiedSince()
返回该对象的 ifModifiedSince 域的值。
getInputStream()
返回从该打开的连接读取的输入流。
getLastModified()
返回 last-modified 报头域的值。
getOutputStream()
返回写到该连接的输出流。
getRequestProperty(String)
返回该连接的命名的一般请求属性的值。
getURL()
返回 URLConnectionURL 值。
getUseCaches()
返回 URLConnectionuseCaches 域的值。
guessContentTypeFromName(String)
试图确定该对象的内容类型,该对象基于 URL 的指定的 “file” 组成部分。
guessContentTypeFromStream(InputStream)
试图确定基于输入流开始字符的输入流的类型。
setAllowUserInteraction(boolean)
设置 URLConnectionallowUserInteraction 域的值。
setContentHandlerFactory(ContentHandlerFactory)
设置一应用程序的 ContentHandlerFactory
setDefaultAllowUserInteraction(boolean)
设置所有 URLConnection 对象的 allowUserInteraction 域的缺省值。
setDefaultRequestProperty(String, String)
设置一般请求属性的缺省值 。
setDefaultUseCaches(boolean)
设置 useCaches 域的缺省值为指定值。
setDoInput(boolean)
设置 URLConnectiondoInput 域为指定值。
setDoOutput(boolean)
设置 URLConnectiondoInput 域为指定值。
setFileNameMap(FileNameMap)
设置 FileNameMap 。
setIfModifiedSince(long)
设置 URLConnectionifModifiedSince 域为指定的值。
setRequestProperty(String, String)
设置一般请求属性。
setUseCaches(boolean)
设置 URLConnectionuseCaches 域为指定值。
toString()
返回该URL连接的 String 表示。

变量

url
 protected URL url
该 URL 表示该连接在万维网上打开的远程对象。

该域的值可以由 getURL 方法访问。

该变量的缺省值是 URLConnection 构造子中 URL 参数的值。

参见:
getURL, url
doInput
 protected boolean doInput
该变量由方法 setDoInput 设置。 由 getDoInput 方法返回它的值。

URL 连接可以用于输入和(或)输出。 设置 doInput 标志为 true,表明应用程序试图从该 URL 连接读取数据。

该字段的缺省值为true

参见:
getDoInput, setDoInput
doOutput
 protected boolean doOutput
该变量由方法 setDoOutput 设置。 由 getDoInput 方法返回它的值。

URL 连接可以用于输入和(或)输出。 设置 doOutput 标志为 true ,表明应用程序试图往该 URL 连接写入数据。

该字段的缺省值为 false

参见:
getDoOutput, setDoOutput
allowUserInteraction
 protected boolean allowUserInteraction
若为 true,则该 URL 在允许用户交互的环境里进行检查,这些交互只弹出一确认对话框等。若为 false,则不允许用户交互。

该域的值可以由 setAllowUserInteraction 方法设置。由 getAllowUserInteraction 方法返回它的值。 它的缺省值为 setDefaultAllowUserInteraction 方法最后一次调用的参数值。

参见:
getAllowUserInteraction, setAllowUserInteraction, setDefaultAllowUserInteraction
useCaches
 protected boolean useCaches
若为 true ,则允许该协议在任何时侯使用高速缓存。 若为 false,协议必须尝试去获得对象的新拷贝。

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

它的缺省值为 setDefaultUseCaches 方法最后一次调用时给出的值。

参见:
setUseCaches, getUseCaches, setDefaultUseCaches
ifModifiedSince
 protected long ifModifiedSince
一些协议允许跳过对象获取,除非该对象在一特定时间之后被修改。

一个非零值给出一个从 January 1, 1970, GMT 起以秒表示的时间。 对象只有在该时间之后修改才装入。

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

该域的缺省值为 0

参见:
getIfModifiedSince, setIfModifiedSince
connected
 protected boolean connected
若为 false ,则表示该连接对象没有生成对指定 URL 的通信链路 。 若为 true ,则表示通信链路已经建立。


构造子

URLConnection
 protected URLConnection(URL url)
构造一到指定 URL 的 URL 连接。 没有生成到 URL 引用的对象的连接。

参数:
url - 指定的 URL 。

方法

getFileNameMap
 public static FileNameMap getFileNameMap()
返回 FileNameMap 。

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

参数:
map - 要设置的 FileNameMap
connect
 public abstract void connect() throws IOException
如果一连接尚未建立,则打开一个到由该 URL 引用的资源的通信链路。

如果方法 connect 调用时连接已经打开 (由 connected 域为 true 标识),则忽略该调用。

URLConnection 对象经历两个阶段:首先它们被生成,然后被连接。 在生成后和连接这段时间里,可以指定不同的选项 (比如:doInput 和 UseCaches)。如果连接后再试图设置它们就会出错。 依赖于连接的操作,如 getContentLength,如果必要的话,将隐式地执行连接。

抛出: IOException
如果打开连接时发生一 I/O 错误。
参见:
connected
getURL
 public URL getURL()
返回 URLConnectionURL 值。

返回:
URLConnectionURL 域的值。
参见:
url
getContentLength
 public int getContentLength()
返回 content-length 报头域的值。

返回:
该连接 URL 引用资源的内容长度,如果内容长度未知,则返回 -1
getContentType
 public String getContentType()
返回 content-type 报头域的值。

返回:
URL 引用资源的内容类型,若未知则为 null
参见:
getHeaderField
getContentEncoding
 public String getContentEncoding()
返回 content-encoding 报头域的值。

返回:
URL 引用资源的内容编码,若未知则为 null
参见:
getHeaderField
getExpiration
 public long getExpiration()
返回 expires 的报头域的值。

返回:
URL 引用资源的截止日期,若未知则为 0。该值为从 January 1, 1970 GMT 起的秒数。
参见:
getHeaderField
getDate
 public long getDate()
返回 date 报头域的值。

返回:
URL 引用的资源的发送日期,若未知则为 0 。 返回的值是从 January 1, 1970 GMT 起的秒数。
参见:
getHeaderField
getLastModified
 public long getLastModified()
返回 last-modified 报头域的值。 结果为从 January 1, 1970 GMT 起的计秒数。

返回:
URLConnection 引用的资源的最后修改日期,若未知则为 0 。
参见:
getHeaderField
getHeaderField
 public String getHeaderField(String name)
返回指定的报头域的值。 传给该方法的报头域的名称可由 getHeaderFieldKey 获得。

参数:
name - 报头域的名称。
返回:
命名报头域的值,若该报头中无该域则为 null
参见:
getHeaderFieldKey
getHeaderFieldInt
 public int getHeaderFieldInt(String name,
                              int Default)
返回以数字形式分析的命名域的值。

getHeaderField格式是存在的,因为一些连接类型 (比如 http-ng) 有预分析报头。 此连接类型的类可以覆盖该方法并且使分析短路。

参数:
name - 报头域名。
Default - 缺省值。
返回:
以证书分析的该命名域的值。 如果没有该域字段或形式错误,则返换回 Default 值。
getHeaderFieldDate
 public long getHeaderFieldDate(String name,
                                long Default)
返回以日期分析的命名域的值。 结果为从 January 1, 1970 GMT 起由命名域表示的秒数。

getHeaderField 格式是存在的,因为一些连接类 (比如 http-ng) 有预分析报头。 此连接类型的类可以覆盖该方法并且使分析短路。

参数:
name - 报头域名。
Default - 缺省值。
返回:
以日期形式分析的该命名域的值。如果没有该字段或形式错误,则返回 Default 参数的值。
getHeaderFieldKey
 public String getHeaderFieldKey(int n)
返回第 nth 个报头域的关键字。

参数:
n - 索引。
返回:
返回第 nth 个报头域的关键字,若域数少于 n 个,则返回 null
getHeaderField
 public String getHeaderField(int n)
返回第 nth 个报头域的值。 若域数少于 n 个,则返回 null

该方法可以与方法 getHeaderFieldKey 联用来获取消息头部的所有信息。

参数:
n - 索引。
返回:
nth 个报头域的值。
参见:
getHeaderFieldKey
getContent
 public Object getContent() throws IOException
获取该 URL 连接的内容。

该方法首先通过调用方法 getContentType 来确定对象的内容类型。 如果应用程序第一次见到该指定的内容类型,将生成此内容类型的内容处理程序。

  1. 如果应用程序使用 setContentHandlerFactory 方法已建立内容处理程序实例,则以该内容类型为参数调用该实例的 createContentHandler 方法;返回结果为该内容类型的内容处理程序。
  2. 如果内容处理程序工厂还未建立,或者工厂的 createContentHandler 方法返回值为 null ,则应用程序装入类:
      sun.net.www.content.<contentType>
    <contentType>通过下面的步骤形成:把内容类型字符串的所有斜体字符替换为 period ('.') ,把所有其它的非字母数字添加下划线字符 '_'。字母数字字符是指 26 个大写 ASCII 字母 'A' 到 'Z', 26 个小写 ASCII 字母 'a' 到 'z',和 10 个 ASCII 数字 '0' 到 '9'。 如果指定的类不存在, 或者不是 ContentHandler 类的子类,则抛出 UnknownServiceException

返回:
装入对象。 使用 instanceOf 操作来确定返回对象的特定种类。
抛出: IOException
如果在获取内容的时侯发生一I/O错误。
抛出: UnknownServiceException
如果协议不支持该内容类型。
参见:
createContentHandler, getContentType, setContentHandlerFactory
getInputStream
 public InputStream getInputStream() throws IOException
返回从该打开的连接读取的输入流。

返回:
从打开的连接读取的输入流。
抛出: IOException
如果在生成输入流时发生一I/O错误 。
抛出: UnknownServiceException
如果协议不支持输入。
getOutputStream
 public OutputStream getOutputStream() throws IOException
返回写到该连接的输出流。

返回:
写到该连接的输出流。
抛出: IOException
如果生成输出流的时侯发生一I/O错误 。
抛出: UnknownServiceException
如果协议不支持输出。
toString
 public String toString()
返回该URL连接的 String 表示。

返回:
URLConnection 的字符串表示。
覆盖:
Object 中的 toString
setDoInput
 public void setDoInput(boolean doinput)
设置 URLConnectiondoInput 域为指定的值。

URL 连接可以用于输入和(或)输出。 如果想使用 URL 连接输入,则设置 DoInput 标志为 true ,否则为 false 。 缺省值为 true 除非 DoOutput 显式地设为 true ,否则在此情况下缺省值为 false 。

参数:
value - 新值。
参见:
doInput
getDoInput
 public boolean getDoInput()
返回 URLConnectiondoInput 标志的值。

返回:
URLConnectiondoInput 标志的值。
参见:
doInput
setDoOutput
 public void setDoOutput(boolean dooutput)
设置 URLConnectiondoInput 域为指定的值。

URL 连接可以用于输入和(或)输出。 如果想使用 URL 连接输出,则设置 DoOutput 标志为 true ,否则为 false 。 缺省值为 false 。 

参数:
value - 新值。
参见:
doOutput
getDoOutput
 public boolean getDoOutput()
返回 URLConnectiondoOutput 标志的值。

返回:
URLConnectiondoOutput 标志的值。
参见:
doOutput
setAllowUserInteraction
 public void setAllowUserInteraction(boolean allowuserinteraction)
设置 URLConnectionallowUserInteraction 域的值。

参数:
allowuserinteraction - 新值。
参见:
allowUserInteraction
getAllowUserInteraction
 public boolean getAllowUserInteraction()
返回该对象的 allowUserInteraction 域的值。

返回:
对象的 allowUserInteraction 域的值。
参见:
allowUserInteraction
setDefaultAllowUserInteraction
 public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
设置所有 URLConnection 对象的 allowUserInteraction 域的缺省值。

参数:
defaultallowuserinteraction - 新值。
参见:
allowUserInteraction
getDefaultAllowUserInteraction
 public static boolean getDefaultAllowUserInteraction()
返回该对象的 allowUserInteraction 域的缺省值。

缺省值为 “sticky”,是所有 URLConnections 静态状态的一部分。 该标志适用于下一个和所有随后生成的 URLConnections 。

返回:
allowUserInteraction 域的缺省值。
参见:
allowUserInteraction
setUseCaches
 public void setUseCaches(boolean usecaches)
设置 URLConnectionuseCaches 域为指定的值。

一些协议可以高速缓存文档。有时,使用“tunnel through”并忽略高速缓冲是很重要的(比如浏览器中的“reload” 按钮)。 如果连接的 UseCaches 标志为真,则允许该连接任意使用高速缓存。 若为假,则忽略高速缓存。缺省值来自 DefaultUseCaches,其缺省值为 true 。

参见:
useCaches
getUseCaches
 public boolean getUseCaches()
返回 URLConnectionuseCaches 域的值。

返回:
URLConnectionuseCaches 域的值。
参见:
useCaches
setIfModifiedSince
 public void setIfModifiedSince(long ifmodifiedsince)
设置 URLConnectionifModifiedSince 域为指定值。

参数:
value - 新值。
参见:
ifModifiedSince
getIfModifiedSince
 public long getIfModifiedSince()
返回该对象的 ifModifiedSince 域的值。

返回:
该对象的 ifModifiedSince 域的值。
参见:
ifModifiedSince
getDefaultUseCaches
 public boolean getDefaultUseCaches()
返回 URLConnectionuseCaches 标志的缺省值。

缺省值为 “sticky”,它是所有 URLConnections 静态状态的一部分。该标志适用于下一个和所有随后生成的 URLConnections 。

返回:
URLConnectionuseCaches 标志的缺省值。
参见:
useCaches
setDefaultUseCaches
 public void setDefaultUseCaches(boolean defaultusecaches)
设置 useCaches 域的缺省值为指定值。

参数:
defaultusecaches - 新值。
参见:
useCaches
setRequestProperty
 public void setRequestProperty(String key,
                                String value)
设置一般请求属性。

参数:
key - 得知该请求的关键字(比如“accept”)。
value - 和它相关的值。
getRequestProperty
 public String getRequestProperty(String key)
返回该连接的命名的一般请求属性的值。

返回:
该连接的命名的一般请求属性的值。
setDefaultRequestProperty
 public static void setDefaultRequestProperty(String key,
                                              String value)
设置一般请求属性的缺省值。当生成 URLConnection 时,由这些属性进行初始化。

参数:
key - 得知该请求的关键字(比如“accept”)。
value - 和关键字相关的值。
getDefaultRequestProperty
 public static String getDefaultRequestProperty(String key)
返回请求属性的缺省值。为每个连接设置的缺省请求属性。

返回:
指定键入的请求属性的缺省值。 
参见:
setDefaultRequestProperty
setContentHandlerFactory
 public static synchronized void setContentHandlerFactory(ContentHandlerFactory fac)
设置一应用程序的 ContentHandlerFactory 。 它最多只能被应用程序调用一次。

ContentHandlerFactory 实例用来构造一内容类型的内容处理程序。

参数:
fac - 期望的工厂。
抛出: Error
工厂是否已被定义。
参见:
ContentHandlerFactory, getContent
guessContentTypeFromName
 protected static String guessContentTypeFromName(String fname)
试图确定该对象的内容类型,该对象基于 URL 指定的 "file" 部件。 它是一个便捷方法,它可以被子类用来覆盖 getContentType 方法。

参数:
fname - 文件名。
返回:
一个基于它的文件名字对它的内容类型作的推测。
参见:
getContentType
guessContentTypeFromStream
 public static String guessContentTypeFromStream(InputStream is) throws IOException
试图确定基于输入流开始字符的输入流的类型。 该方法可以被覆盖 getContentType 方法的子类使用。

理想情况下并不需要该例行程序。但是许多 http 服务器返回不正确的内容类型;并且存在许多非标准的扩充。直接检查字节来确定内容类型通常比 http 服务器宣称的内容类型更准确。

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

当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)