java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.net
类 URLConnection

java.lang.Object
  继承者 java.net.URLConnection
直接已知子类:
HttpURLConnection, JarURLConnection

public abstract class URLConnection
extends Object

抽象类 URLConnection 是所有类的超类,它代表应用程序和 URL 之间的通信链接。此类的实例可用于读取和写入此 URL 引用的资源。通常,创建一个到 URL 的连接需要几个步骤:

openConnection() connect()
对影响到远程资源连接的参数进行操作。 与资源交互;查询头字段和内容。
---------------------------->
时间
  1. 通过在 URL 上调用 openConnection 方法创建连接对象。
  2. 操作设置参数和一般请求属性。
  3. 使用 connect 方法建立到远程对象的实际连接。
  4. 远程对象变为可用。远程对象的头字段和内容变为可访问。

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

  • setAllowUserInteraction
  • setDoInput
  • setDoOutput
  • setIfModifiedSince
  • setUseCaches

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

  • setRequestProperty

使用 setDefaultAllowUserInteractionsetDefaultUseCaches 可设置 AllowUserInteractionUseCaches 参数的默认值。

上面每个 set 方法都有一个用于检索参数值或一般请求属性值的对应 get 方法。适用的具体参数和一般请求属性取决于协议。

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

  • getContent
  • getHeaderField
  • getInputStream
  • getOutputStream

某些头字段需要经常访问。以下方法:

  • getContentEncoding
  • getContentLength
  • getContentType
  • getDate
  • getExpiration
  • getLastModifed

提供对这些字段的便捷访问。getContent 方法使用 getContentType 方法以确定远程对象类型;子类重写 getContentType 方法很容易。

一般情况下,所有的预连接参数和一般请求属性都可忽略:预连接参数和一般请求属性默认为敏感值。对于此接口的大多数客户端而言,只有两个感兴趣的方法:getInputStreamgetContent,它们通过便捷方法镜像到 URL 类中。

有关 http 连接的请求属性和头字段的更多信息,可从以下位置找到:

 http://www.ietf.org/rfc/rfc2068.txt
 
有关 fileNameMap 的注意事项:在 JDK 1.1.6 以前的版本中,URLConnectionfileNameMap 为公开字段。在 JDK 1.1.6 及以后的版本中,fileNameMap 为私有;对其添加了 accessor 和 mutator 方法 getFileNameMapsetFileNameMap 以便访问。Compatibility 页中也对此更改进行了介绍。 完成请求后,在一个 URLConnectionInputStreamOutputStream 上调用 close() 方法可能释放与此实例相关的网络资源,除非特定的协议规范为其指定了其他行为。

从以下版本开始:
JDK1.0
另请参见:
URL.openConnection(), connect(), getContent(), getContentEncoding(), getContentLength(), getContentType(), getDate(), getExpiration(), getHeaderField(int), getHeaderField(java.lang.String), getInputStream(), getLastModified(), getOutputStream(), setAllowUserInteraction(boolean), setDefaultUseCaches(boolean), setDoInput(boolean), setDoOutput(boolean), setIfModifiedSince(long), setRequestProperty(java.lang.String, java.lang.String), setUseCaches(boolean)

字段摘要
protected  boolean allowUserInteraction
          如果为 true,则在允许用户交互(例如弹出一个身份验证对话框)的上下文中对此 URL 进行检查。
protected  boolean connected
          如果为 false,则此连接对象尚未创建到指定 URL 的通信链接。
protected  boolean doInput
          此变量由 setDoInput 方法设置。
protected  boolean doOutput
          此变量由 setDoOutput 方法设置。
protected  long ifModifiedSince
          有些协议支持跳过对象获取,除非该对象在某个特定时间点之后又进行了修改。
protected  URL url
          URL 表示此连接要在互联网上打开的远程对象。
protected  boolean useCaches
          如果为 true,则只要有条件就允许协议使用缓存。
 
构造方法摘要
protected URLConnection(URL url)
          构造一个到指定 URL 的 URL 连接。
 
方法摘要
 void addRequestProperty(String key, String value)
          添加由键值对指定的一般请求属性。
abstract  void connect()
          打开到此 URL 引用的资源的通信链接(如果尚未建立这样的连接)。
 boolean getAllowUserInteraction()
          返回此对象的 allowUserInteraction 字段的值。
 int getConnectTimeout()
          返回连接超时设置。
 Object getContent()
          检索此 URL 连接的内容。
 Object getContent(Class[] classes)
          检索此 URL 连接的内容。
 String getContentEncoding()
          返回 content-encoding 头字段的值。
 int getContentLength()
          返回 content-length 头字段的值。
 String getContentType()
          返回 content-type 头字段的值。
 long getDate()
          返回 date 头字段的值。
static boolean getDefaultAllowUserInteraction()
          返回 allowUserInteraction 字段的默认值。
static String getDefaultRequestProperty(String key)
          已过时。 应在获得 URLConnection 的适当实例后使用特定 getRequestProperty 方法的实例。
 boolean getDefaultUseCaches()
          返回 URLConnectionuseCaches 标志的默认值。
 boolean getDoInput()
          返回此 URLConnectiondoInput 标志的值。
 boolean getDoOutput()
          返回此 URLConnectiondoOutput 标志的值。
 long getExpiration()
          返回 expires 头字段的值。
static FileNameMap getFileNameMap()
          从数据文件加载文件名映射(一个 mimetable)。
 String getHeaderField(int n)
          返回第 n 个头字段的值。
 String getHeaderField(String name)
          返回指定的头字段的值。
 long getHeaderFieldDate(String name, long Default)
          返回解析为日期的指定字段的值。
 int getHeaderFieldInt(String name, int Default)
          返回解析为数字的指定字段的值。
 String getHeaderFieldKey(int n)
          返回第 n 个头字段的键。
 Map<String,List<String>> getHeaderFields()
          返回头字段的不可修改的 Map。
 long getIfModifiedSince()
          返回此对象的 ifModifiedSince 字段的值。
 InputStream getInputStream()
          返回从此打开的连接读取的输入流。
 long getLastModified()
          返回 last-modified 头字段的值。
 OutputStream getOutputStream()
          返回写入到此连接的输出流。
 Permission getPermission()
          返回一个权限对象,其代表建立此对象表示的连接所需的权限。
 int getReadTimeout()
          返回读入超时设置。
 Map<String,List<String>> getRequestProperties()
          返回一个由此连接的一般请求属性构成的不可修改的 Map。
 String getRequestProperty(String key)
          返回此连接指定的一般请求属性值。
 URL getURL()
          返回此 URLConnectionURL 字段的值。
 boolean getUseCaches()
          返回此 URLConnectionuseCaches 字段的值。
static String guessContentTypeFromName(String fname)
          根据 URL 的指定 "file" 部分尝试确定对象的内容类型。
static String guessContentTypeFromStream(InputStream is)
          根据输入流的开始字符尝试确定输入流的类型。
 void setAllowUserInteraction(boolean allowuserinteraction)
          设置此 URLConnectionallowUserInteraction 字段的值。
 void setConnectTimeout(int timeout)
          设置一个指定的超时值(以毫秒为单位),该值将在打开到此 URLConnection 引用的资源的通信链接时使用。
static void setContentHandlerFactory(ContentHandlerFactory fac)
          设置应用程序的 ContentHandlerFactory
static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
          将未来的所有 URLConnection 对象的 allowUserInteraction 字段的默认值设置为指定的值。
static void setDefaultRequestProperty(String key, String value)
          已过时。 应在获得 URLConnection 的适当实例后使用特定 setRequestProperty 方法的实例。调用此方法没有任何作用。
 void setDefaultUseCaches(boolean defaultusecaches)
          将 useCaches 字段的默认值设置为指定的值。
 void setDoInput(boolean doinput)
          将此 URLConnectiondoInput 字段的值设置为指定的值。
 void setDoOutput(boolean dooutput)
          将此 URLConnectiondoOutput 字段的值设置为指定的值。
static void setFileNameMap(FileNameMap map)
          设置 FileNameMap。
 void setIfModifiedSince(long ifmodifiedsince)
          将此 URLConnectionifModifiedSince 字段的值设置为指定的值。
 void setReadTimeout(int timeout)
          将读超时设置为指定的超时,以毫秒为单位。
 void setRequestProperty(String key, String value)
          设置一般请求属性。
 void setUseCaches(boolean usecaches)
          将此 URLConnectionuseCaches 字段的值设置为指定的值。
 String toString()
          返回此 URL 连接的 String 表示形式。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

url

protected URL url
URL 表示此连接要在互联网上打开的远程对象。

使用 getURL 方法可访问此字段的值。

此变量的默认值为 URLConnection 构造方法中的 URL 参数的值。

另请参见:
getURL(), url

doInput

protected boolean doInput
此变量由 setDoInput 方法设置。其值由 getDoInput 方法返回。

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

此字段的默认值为 true

另请参见:
getDoInput(), setDoInput(boolean)

doOutput

protected boolean doOutput
此变量由 setDoOutput 方法设置。其值由 getDoOutput 方法返回。

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

此字段的默认值为 false

另请参见:
getDoOutput(), setDoOutput(boolean)

allowUserInteraction

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

使用 setAllowUserInteraction 方法可对此字段的值进行设置。其值由 getAllowUserInteraction 方法返回。其默认值为上一次调用 setDefaultAllowUserInteraction 方法所用的参数的值。

另请参见:
getAllowUserInteraction(), setAllowUserInteraction(boolean), setDefaultAllowUserInteraction(boolean)

useCaches

protected boolean useCaches
如果为 true,则只要有条件就允许协议使用缓存。如果为 false,则该协议始终必须获得此对象的新副本。

此字段由 setUseCaches 方法设置。其值由 getUseCaches 方法返回。

其默认值为上一次调用 setDefaultUseCaches 方法时给定的值。

另请参见:
setUseCaches(boolean), getUseCaches(), setDefaultUseCaches(boolean)

ifModifiedSince

protected long ifModifiedSince
有些协议支持跳过对象获取,除非该对象在某个特定时间点之后又进行了修改。

一个非零的值给定一个时间,它表示距离格林威治标准时间 1970 年 1 月 1 日的毫秒数。只有在该时间之后又进行了修改时,才获取该对象。

此变量由 setIfModifiedSince 方法设置。其值由 getIfModifiedSince 方法返回。

此字段的默认值为 0,指示必须一直进行捕获。

另请参见:
getIfModifiedSince(), setIfModifiedSince(long)

connected

protected boolean connected
如果为 false,则此连接对象尚未创建到指定 URL 的通信链接。如果为 true,则已经建立了通信链接。

构造方法详细信息

URLConnection

protected URLConnection(URL url)
构造一个到指定 URL 的 URL 连接。不会创建到 URL 所引用的对象的连接