- 已知子类:
HttpURLConnection,JarURLConnection
URLConnection 是代表应用程序和 URL 之间的通信链接的所有类的超类。此类的实例可用于读取和写入 URL 引用的资源。
通常,创建到 URL 的连接是一个多步骤过程:
- 连接对象是通过调用 URL 上的
openConnection方法创建的。 - 设置参数和一般请求属性被操纵。
- 使用
connect方法建立与远程对象的实际连接。 - 远程对象变得可用。可以访问远程对象的标头字段和内容。
使用以下方法修改设置参数:
setAllowUserInteractionsetDoInputsetDoOutputsetIfModifiedSincesetUseCaches
并使用以下方法修改一般请求属性:
setRequestProperty
AllowUserInteraction 和 UseCaches 参数的默认值可以使用方法 setDefaultAllowUserInteraction 和 setDefaultUseCaches 进行设置。
上述每个set方法都有对应的get方法来检索参数或一般请求属性的值。适用的特定参数和一般请求属性是特定于协议的。
以下方法用于在连接到远程对象后访问标头字段和内容:
getContentgetHeaderFieldgetInputStreamgetOutputStream
某些标头字段被频繁访问。方法:
getContentEncodinggetContentLengthgetContentTypegetDategetExpirationgetLastModified
提供对这些字段的方便访问。 getContentType方法被getContent方法用来判断远程对象的类型;子类可能会发现覆盖 getContentType 方法很方便。
在通常情况下,可以忽略所有预连接参数和一般请求属性:预连接参数和请求属性默认为合理值。对于此接口的大多数客户端,只有两个有趣的方法:getInputStream 和 getContent,它们通过便利方法在 URL 类中进行了镜像。
有关 http 连接的请求属性和标头字段的更多信息,请访问:
在请求后调用http://www.ietf.org/rfc/rfc2616.txt
URLConnection 的 InputStream 或 OutputStream 上的 close() 方法可能释放与此实例关联的网络资源,除非特定协议规范为其指定不同的行为。
- 自从:
- 1.0
- 参见:
-
字段摘要
字段修饰符和类型Field描述protected boolean如果是true,则这个URL是在允许用户交互(例如弹出身份验证对话框)有意义的上下文中进行检查的。protected boolean如果为false,则此连接对象尚未创建到指定 URL 的通信链接。protected boolean该变量由setDoInput方法设置。protected boolean该变量由setDoOutput方法设置。protected long一些协议支持跳过对象的获取,除非对象最近被修改超过特定时间。protected URLURL 代表万维网上打开此连接的远程对象。protected boolean如果为true,则允许协议尽可能使用缓存。 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述voidaddRequestProperty(String key, String value) 添加由键值对指定的通用请求属性。abstract voidconnect()如果尚未建立此类连接,则打开此 URL 引用的资源的通信链接。boolean返回此对象的allowUserInteraction字段的值。int返回连接超时设置。检索此 URL 连接的内容。getContent(Class<?>[] classes) 检索此 URL 连接的内容。返回content-encoding标头字段的值。int返回content-length标头字段的值。long以 long 形式返回content-length标头字段的值。返回content-type标头字段的值。longgetDate()返回date标头字段的值。static boolean返回allowUserInteraction字段的默认值。static String已弃用。在获得适当的 URLConnection 实例后,应使用实例特定的 getRequestProperty 方法。boolean返回URLConnection的useCaches标志的默认值。static booleangetDefaultUseCaches(String protocol) 返回给定协议的useCaches标志的默认值。boolean返回此URLConnection的doInput标志的值。boolean返回此URLConnection的doOutput标志的值。long返回expires标头字段的值。static FileNameMap从数据文件加载文件名映射(模拟表)。getHeaderField(int n) 返回n的值日标题字段。getHeaderField(String name) 返回命名标头字段的值。longgetHeaderFieldDate(String name, long Default) 返回解析为日期的命名字段的值。intgetHeaderFieldInt(String name, int Default) 返回解析为数字的命名字段的值。getHeaderFieldKey(int n) 返回n的密钥日标题字段。longgetHeaderFieldLong(String name, long Default) 返回解析为数字的命名字段的值。返回标头字段的不可修改的map。long返回此对象的ifModifiedSince字段的值。返回从此打开的连接读取的输入流。long返回last-modified标头字段的值。返回写入此连接的输出流。此对象所表示的连接所需的权限。int返回读取超时设置。返回 0 意味着该选项被禁用(即无限超时)。返回此连接的一般请求属性的不可修改的map。getRequestProperty(String key) 返回此连接的命名通用请求属性的值。getURL()返回此URLConnection的URL字段的值。boolean返回此URLConnection的useCaches字段的值。static StringguessContentTypeFromName(String fname) 尝试根据 URL 的指定“文件”部分确定对象的内容类型。static String尝试根据输入流开头的字符确定输入流的类型。voidsetAllowUserInteraction(boolean allowuserinteraction) 设置此URLConnection的allowUserInteraction字段的值。voidsetConnectTimeout(int timeout) 设置指定的超时值(以毫秒为单位),以在打开指向此 URLConnection 引用的资源的通信链接时使用。static void设置应用程序的ContentHandlerFactory。static voidsetDefaultAllowUserInteraction(boolean defaultallowuserinteraction) 将所有未来URLConnection对象的allowUserInteraction字段的默认值设置为指定值。static voidsetDefaultRequestProperty(String key, String value) 已弃用。在获得适当的 URLConnection 实例后,应使用实例特定的 setRequestProperty 方法。voidsetDefaultUseCaches(boolean defaultusecaches) 将useCaches字段的默认值设置为指定值。static voidsetDefaultUseCaches(String protocol, boolean defaultVal) 将命名协议的useCaches字段的默认值设置为给定值。voidsetDoInput(boolean doinput) 将此URLConnection的doInput字段的值设置为指定值。voidsetDoOutput(boolean dooutput) 将此URLConnection的doOutput字段的值设置为指定值。static void设置 FileNameMap。voidsetIfModifiedSince(long ifmodifiedsince) 将此URLConnection的ifModifiedSince字段的值设置为指定值。voidsetReadTimeout(int timeout) 将读取超时设置为指定的超时,以毫秒为单位。voidsetRequestProperty(String key, String value) 设置一般请求属性。voidsetUseCaches(boolean usecaches) 将此URLConnection的useCaches字段的值设置为指定值。toString()返回此 URL 连接的String表示。
-
字段详细信息
-
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
构造到指定 URL 的 URL 连接。未创建与 URL 引用的对象的连接。- 参数:
url- 指定的 URL。
-
-
方法详情
-
getFileNameMap
从数据文件加载文件名映射(模拟表)。它将首先尝试加载由“content.types.user.table”属性定义的用户特定表。如果失败,它会尝试加载默认的内置表。- 返回:
- 文件名映射
- 自从:
- 1.2
- 参见:
-
setFileNameMap
设置 FileNameMap。如果有安全管理器,此方法首先调用安全管理器的
checkSetFactory方法以确保允许操作。这可能会导致 SecurityException。- 参数:
map- 要设置的 FileNameMap- 抛出:
SecurityException- 如果安全管理器存在且其checkSetFactory方法不允许该操作。- 自从:
- 1.2
- 参见:
-
connect
如果尚未建立此类连接,则打开此 URL 引用的资源的通信链接。如果在连接已打开时调用
connect方法(由具有值true的connected字段指示),则调用将被忽略。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
返回此URLConnection的URL字段的值。- 返回:
-
这个
URLConnection的URL字段的值。 - 参见:
-
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
返回content-type标头字段的值。- 返回:
-
URL 引用的资源的内容类型,如果不知道则为
null。 - 参见:
-
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
返回命名标头字段的值。如果在多次使用可能不同的值设置相同标头的连接上调用,则仅返回最后一个值。
- 参数:
name- 标题字段的名称。- 返回:
-
命名标头字段的值,或者
null如果标头中没有这样的字段。
-
getHeaderFields
返回标头字段的不可修改的映射。映射键是表示响应标头字段名称的字符串。每个 Map 值都是不可修改的字符串列表,表示相应的字段值。此方法被URLConnection的子类覆盖。在这些方法的实现中,如果一个给定的键有多个对应的值,它们必须按照它们被添加的顺序返回,保持插入顺序。- 实现要求:
- 此方法的默认实现始终返回一个空映射。
- 返回:
- 标头字段的映射
- 自从:
- 1.4
-
getHeaderFieldInt
返回解析为数字的命名字段的值。这种形式的
getHeaderField存在是因为某些连接类型(例如http-ng)具有预解析的标头。该连接类型的类可以覆盖此方法并使解析短路。- 参数:
name- 标头字段的名称。Default- 默认值。- 返回:
-
命名字段的值,解析为整数。如果该字段丢失或格式错误,则返回
Default值。
-
getHeaderFieldLong
返回解析为数字的命名字段的值。这种形式的
getHeaderField存在是因为某些连接类型(例如http-ng)具有预解析的标头。该连接类型的类可以覆盖此方法并使解析短路。- 参数:
name- 标头字段的名称。Default- 默认值。- 返回:
-
命名字段的值,解析为 long。如果该字段丢失或格式错误,则返回
Default值。 - 自从:
- 1.7
-
getHeaderFieldDate
返回解析为日期的命名字段的值。结果是自 1970 年 1 月 1 日 GMT 以来的毫秒数,由命名字段表示。这种形式的
getHeaderField存在是因为某些连接类型(例如http-ng)具有预解析的标头。该连接类型的类可以覆盖此方法并使解析短路。- 参数:
name- 标头字段的名称。Default- 默认值。- 返回:
-
字段的值,解析为日期。如果该字段丢失或格式错误,则返回
Default参数的值。
-
getHeaderFieldKey
返回n的密钥日标题字段。一些实现可能会处理0日头字段是特殊的,在这种情况下,getHeaderField(0)可能返回一些值,但getHeaderFieldKey(0)返回null。对于n > 0,如果字段少于n+1,则返回null。- 参数:
n- 一个索引,其中n>=0- 返回:
n的关键日头字段,或者null如果在n > 0时少于n+1字段。
-
getHeaderField
- 参数:
n- 一个索引,其中n>=0- 返回:
n的值日标题字段或null如果少于n+1字段- 参见:
-
getContent
检索此 URL 连接的内容。此方法首先通过调用
getContentType方法确定对象的内容类型。如果这是应用程序第一次看到该特定内容类型,则会为该内容类型创建一个内容处理程序。这是按如下方式完成的:
- 如果应用程序使用
setContentHandlerFactory方法设置了内容处理程序工厂实例,则以内容类型作为参数调用该实例的createContentHandler方法;结果是该内容类型的内容处理程序。 - 如果尚未设置
ContentHandlerFactory,或者如果工厂的createContentHandler方法返回null,则ServiceLoader机制用于使用系统类加载器定位ContentHandlerFactory实现。工厂定位的顺序是特定于实现的,一个实现可以自由地缓存定位的工厂。如果遇到从createContentHandler抛出的 ServiceConfigurationError、Error或RuntimeException,将传播到调用线程。每个工厂的createContentHandler方法(如果已实例化)将使用内容类型被调用,直到工厂返回非空值或所有工厂都已用尽。 - 如果失败,此方法会尝试加载
ContentHandler定义的内容处理程序类。如果该类不存在,或者不是ContentHandler的子类,则抛出UnknownServiceException。
- 返回:
-
获取的对象。
instanceof运算符应该用于确定返回的对象的具体种类。 - 抛出:
IOException- 如果在获取内容时发生 I/O 错误。UnknownServiceException- 如果协议不支持内容类型。- 参见:
- 如果应用程序使用
-
getContent
检索此 URL 连接的内容。- 参数:
classes- 指示请求类型的Class数组- 返回:
-
获取的对象是类数组中指定类型的第一个匹配项。如果不支持任何请求的类型,则为 null。
instanceof运算符应用于确定返回的对象的具体种类。 - 抛出:
IOException- 如果在获取内容时发生 I/O 错误。UnknownServiceException- 如果协议不支持内容类型。- 自从:
- 1.3
- 参见:
-
getPermission
返回一个权限对象,表示建立此对象所表示的连接所需的权限。如果建立连接不需要权限,则此方法返回 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
返回从此打开的连接读取的输入流。如果读取超时在数据可供读取之前到期,则在从返回的输入流读取时会抛出 SocketTimeoutException。- API 注意:
-
此方法返回的
InputStream可以包装一个InflaterInputStream,其read(byte[], int, int)方法可以修改输出缓冲区的任何元素。 - 返回:
- 从此打开的连接读取的输入流。
- 抛出:
IOException- 如果在创建输入流时发生 I/O 错误。UnknownServiceException- 如果协议不支持输入。- 参见:
-
getOutputStream
返回写入此连接的输出流。- 返回:
- 写入此连接的输出流。
- 抛出:
IOException- 如果在创建输出流时发生 I/O 错误。UnknownServiceException- 如果协议不支持输出。
-
toString
返回此 URL 连接的String表示。 -
setDoInput
public void setDoInput(boolean doinput) 将此URLConnection的doInput字段的值设置为指定值。URL 连接可用于输入和/或输出。如果您打算使用 URL 连接进行输入,则将 doInput 标志设置为 true,否则设置为 false。默认为真。
- 参数:
doinput- 新值。- 抛出:
IllegalStateException- 如果已经连接- 参见:
-
getDoInput
public boolean getDoInput()返回此URLConnection的doInput标志的值。- 返回:
-
这个
URLConnection的doInput标志的值。 - 参见:
-
setDoOutput
public void setDoOutput(boolean dooutput) 将此URLConnection的doOutput字段的值设置为指定值。URL 连接可用于输入和/或输出。如果您打算使用 URL 连接进行输出,则将 doOutput 标志设置为 true,否则设置为 false。默认为假。
- 参数:
dooutput- 新值。- 抛出:
IllegalStateException- 如果已经连接- 参见:
-
getDoOutput
public boolean getDoOutput()返回此URLConnection的doOutput标志的值。- 返回:
-
这个
URLConnection的doOutput标志的值。 - 参见:
-
setAllowUserInteraction
public void setAllowUserInteraction(boolean allowuserinteraction) 设置此URLConnection的allowUserInteraction字段的值。- 参数:
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) 将此URLConnection的useCaches字段的值设置为指定值。某些协议会缓存文档。有时,能够“通过隧道”并忽略缓存很重要(例如,浏览器中的“重新加载”按钮)。如果连接上的 UseCaches 标志为真,则允许连接使用它可以使用的任何缓存。如果为假,缓存将被忽略。默认值来自 defaultUseCaches,默认为 true。也可以使用
setDefaultUseCaches(String,boolean)为每个协议设置默认值。- 参数:
usecaches- 一个boolean指示是否允许缓存- 抛出:
IllegalStateException- 如果已经连接- 参见:
-
getUseCaches
public boolean getUseCaches()返回此URLConnection的useCaches字段的值。- 返回:
-
这个
URLConnection的useCaches字段的值。 - 参见:
-
setIfModifiedSince
public void setIfModifiedSince(long ifmodifiedsince) 将此URLConnection的ifModifiedSince字段的值设置为指定值。- 参数:
ifmodifiedsince- 新值。- 抛出:
IllegalStateException- 如果已经连接- 参见:
-
getIfModifiedSince
public long getIfModifiedSince()返回此对象的ifModifiedSince字段的值。- 返回:
-
此对象的
ifModifiedSince字段的值。 - 参见:
-
getDefaultUseCaches
public boolean getDefaultUseCaches()返回URLConnection的useCaches标志的默认值。此默认值是“粘性”的,是所有 URLConnections 静态状态的一部分。此标志适用于创建的下一个和所有后续 URLConnections。可以使用
setDefaultUseCaches(String,boolean)根据协议覆盖此默认值- 返回:
URLConnection的useCaches标志的默认值。- 参见:
-
setDefaultUseCaches
public void setDefaultUseCaches(boolean defaultusecaches) 将useCaches字段的默认值设置为指定值。可以使用setDefaultUseCaches(String,boolean)根据协议覆盖此默认值- 参数:
defaultusecaches- 新值。- 参见:
-
setDefaultUseCaches
将命名协议的useCaches字段的默认值设置为给定值。此值覆盖setDefaultUseCaches(boolean)为给定协议设置的任何默认设置。连续调用此方法会更改设置并影响该协议所有未来连接的默认值。协议名称不区分大小写。- 参数:
protocol- 为其设置默认值的协议defaultVal- 默认情况下是否为给定协议启用缓存- 自从:
- 9
-
getDefaultUseCaches
返回给定协议的useCaches标志的默认值。如果为给定协议调用了setDefaultUseCaches(String,boolean),则返回该值。否则,如果调用了setDefaultUseCaches(boolean),则返回该值。如果两个方法都未被调用,则返回值为true。协议名称不区分大小写。- 参数:
protocol- 需要 defaultUseCaches 设置的协议- 返回:
-
给定协议的
useCaches标志的默认值。 - 自从:
- 9
-
setRequestProperty
设置一般请求属性。如果具有键的属性已经存在,则用新值重写它的值。注意:HTTP 要求所有可以合法地拥有具有相同键的多个实例的请求属性使用逗号分隔的列表语法,该语法允许将多个属性附加到单个属性中。
- 参数:
key- 请求已知的关键字(例如,“Accept”)。value- 与之关联的值。- 抛出:
IllegalStateException- 如果已经连接NullPointerException- 如果键是null- 参见:
-
addRequestProperty
添加由键值对指定的通用请求属性。此方法不会覆盖与同一键关联的现有值。如果给定子类中使用的协议不支持将值附加到映射,则此方法可能是空操作。- 参数:
key- 请求已知的关键字(例如,“Accept”)。value- 与之关联的值。- 抛出:
IllegalStateException- 如果已经连接NullPointerException- 如果键为空- 自从:
- 1.4
- 参见:
-
getRequestProperty
返回此连接的命名通用请求属性的值。- 参数:
key- 请求已知的关键字(例如,“接受”)。- 返回:
- 此连接的已命名通用请求属性的值。如果 key 为 null,则返回 null。
- 抛出:
IllegalStateException- 如果已经连接- 参见:
-
getRequestProperties
返回此连接的一般请求属性的不可修改的映射。映射键是表示请求标头字段名称的字符串。每个 Map 值都是不可修改的字符串列表,表示相应的字段值。如果通过addRequestProperty(String, String)方法为给定键添加了多个值,这些值将按照添加的顺序返回。此方法必须保留此类值的插入顺序。当为给定键添加多个值时,此方法的默认实现会保留插入顺序。这些值按照它们被添加的顺序返回。- 返回:
- 此连接的一般请求属性的映射。
- 抛出:
IllegalStateException- 如果已经连接- 自从:
- 1.4
-
setDefaultRequestProperty
已弃用。在获得适当的 URLConnection 实例后,应使用实例特定的 setRequestProperty 方法。调用此方法不会有任何效果。设置一般请求属性的默认值。创建URLConnection时,会使用这些属性对其进行初始化。- 参数:
key- 请求已知的关键字(例如,“Accept”)。value- 与键关联的值。- 参见:
-
getDefaultRequestProperty
已弃用。在获得适当的 URLConnection 实例后,应使用实例特定的 getRequestProperty 方法。返回默认请求属性的值。为每个连接设置默认请求属性。- 参数:
key- 请求已知的关键字(例如,“接受”)。- 返回:
- 指定键的默认请求属性的值。
- 参见:
-
setContentHandlerFactory
设置应用程序的ContentHandlerFactory。一个应用程序最多只能调用一次。ContentHandlerFactory实例用于从内容类型构造内容处理程序。如果有安全管理器,此方法首先调用安全管理器的
checkSetFactory方法以确保允许操作。这可能会导致 SecurityException。- 参数:
fac- 所需的工厂。- 抛出:
Error- 如果工厂已经定义。SecurityException- 如果安全管理器存在且其checkSetFactory方法不允许该操作。- 参见:
-
guessContentTypeFromName
尝试根据 URL 的指定“文件”部分确定对象的内容类型。这是一个方便的方法,可以由覆盖getContentType方法的子类使用。- 参数:
fname- 文件名。- 返回:
- 根据对象的文件名猜测对象的内容类型。
- 参见:
-
guessContentTypeFromStream
尝试根据输入流开头的字符确定输入流的类型。此方法可由覆盖getContentType方法的子类使用。理想情况下,不需要此例程。但是许多
http服务返回了不正确的内容类型;此外,还有许多非标准扩展。直接检查字节以确定内容类型通常比相信http服务声明的内容类型更准确。- 参数:
is- 支持标记的输入流。- 返回:
-
内容类型的猜测,如果无法确定则为
null。 - 抛出:
IOException- 如果在读取输入流时发生 I/O 错误。- 参见:
-