- 直接已知的子类:
-
HttpURLConnection,JarURLConnection
URLConnection是表示应用程序与URL之间通信链接的所有类的超类。此类的实例既可用于从URL引用的资源中读取,也可用于向其写入。
一般而言,创建到URL的连接是一个多步骤的过程:
- 通过在URL上调用
openConnection方法来创建连接对象。 - 操作设置参数和一般请求属性。
- 使用
connect方法建立到远程对象的实际连接。 - 远程对象变得可用。可以访问远程对象的头字段和内容。
设置参数可使用以下方法进行修改:
setAllowUserInteractionsetDoInputsetDoOutputsetIfModifiedSincesetUseCaches
一般请求属性可使用以下方法进行修改:
setRequestProperty
可以使用方法setDefaultAllowUserInteraction和setDefaultUseCaches设置AllowUserInteraction和UseCaches参数的默认值。
上述每个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 Summary
FieldsModifier and TypeFieldDescriptionprotected boolean如果true,则正在检查此URL,在其中允许用户交互,例如弹出身份验证对话框。protected boolean如果false,则此连接对象尚未创建到指定URL的通信链接。protected boolean此变量由setDoInput方法设置。protected boolean此变量由setDoOutput方法设置。protected long一些协议支持跳过获取对象,除非对象的修改时间比某个特定时间更新。protected URLURL表示在打开此连接时在万维网上的远程对象。protected boolean如果true,则允许协议在可能的情况下使用缓存。 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddRequestProperty(String key, String value) 添加由键值对指定的一般请求属性。abstract voidconnect()如果尚未建立到此URL引用的资源的通信链接,则打开通信链接。boolean返回此对象的allowUserInteraction字段的值。int返回连接超时的设置。检索此URL连接的内容。getContent(Class<?>[] classes) 检索此URL连接的内容。返回content-encoding头字段的值。int返回content-length头字段的值。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从数据文件加载文件名映射(mimetable)。getHeaderField(int n) 返回第n个头字段的值。getHeaderField(String name) 返回指定命名头字段的值。longgetHeaderFieldDate(String name, long defaultValue) 返回解析为日期的指定字段的值。intgetHeaderFieldInt(String name, int defaultValue) 返回解析为数字的指定字段的值。getHeaderFieldKey(int n) 返回第n个头字段的键。longgetHeaderFieldLong(String name, long defaultValue) 返回解析为数字的指定字段的值。返回头字段的不可修改映射。long返回此对象的ifModifiedSince字段的值。返回从此打开连接读取的输入流。long返回last-modified头字段的值。返回写入到此连接的输出流。返回表示使此对象所代表的连接所需的权限的权限对象。int返回读取超时的设置。返回0表示该选项已禁用(即,超时为无限)。返回此连接的一般请求属性的不可修改映射。getRequestProperty(String key) 返回此连接的指定一般请求属性的值。getURL()返回此URLConnection的URL字段的值。boolean返回此URLConnection的useCaches字段的值。static StringguessContentTypeFromName(String fname) 尝试根据URL的“file”组件来确定对象的内容类型。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表示形式。
-
Field Details
-
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日GMT以来的毫秒数表示。仅当对象的修改时间比该时间更近时,才会获取对象。
此变量由
setIfModifiedSince方法设置。其值由getIfModifiedSince方法返回。此字段的默认值为
0,表示必须始终进行获取。- 参见:
-
connected
protected boolean connected如果为false,则此连接对象尚未创建到指定URL的通信链接。如果为true,则已建立通信链接。
-
-
Constructor Details
-
URLConnection
构造到指定URL的URL连接。不会创建到URL引用的对象的连接。- 参数:
-
url- 指定的URL。
-
-
Method Details
-
getFileNameMap
从数据文件加载文件名映射(mimetable)。它首先尝试加载由"content.types.user.table"属性定义的用户特定表。如果失败,则尝试加载默认内置表。- 返回:
- FileNameMap
- 自:
- 1.2
- 参见:
-
setFileNameMap
设置FileNameMap。如果存在安全管理器,此方法首先调用安全管理器的
checkSetFactory方法以确保允许该操作。这可能导致SecurityException。- 参数:
-
map- 要设置的FileNameMap - 抛出:
-
SecurityException- 如果存在安全管理器且其checkSetFactory方法不允许该操作。 - 自:
- 1.2
- 参见:
-
connect
打开到此URL引用的资源的通信链接,如果尚未建立此类连接。如果在连接已经打开(由
connected字段的值为true表示)时调用connect方法,则该调用将被忽略。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引用的资源的内容长度,如果内容长度未知或内容长度大于Integer.MAX_VALUE,则返回
-1。
-
getContentLengthLong
public long getContentLengthLong()返回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日GMT以来的毫秒数。
- 另请参见:
-
getDate
public long getDate()返回date头字段的值。- 返回:
-
URL引用的资源的发送日期,如果未知则返回
0。返回值是自1970年1月1日GMT以来的毫秒数。 - 另请参见:
-
getLastModified
public long getLastModified()返回last-modified头字段的值。结果是自1970年1月1日GMT以来的毫秒数。- 返回:
-
此
URLConnection引用的资源上次修改的日期,如果未知则返回0。 - 另请参见:
-
getHeaderField
返回指定头字段的值。如果在可能使用不同值多次设置相同头字段的连接上调用此方法,则仅返回最后一个值。
- 参数:
-
name- 头字段的名称。 - 返回:
-
指定头字段的值,如果头中没有这样的字段则返回
null。
-
getHeaderFields
返回头字段的不可修改Map。Map键是表示响应头字段名称的字符串。每个Map值是表示相应字段值的不可修改字符串列表。此方法被URLConnection的子类覆盖。在这些方法的实现中,如果给定键具有多个对应值,则必须按添加顺序返回它们,保留插入顺序。- 实现要求:
- 此方法的默认实现始终返回一个空映射。
- 返回:
- 一个头字段的Map
- 自版本:
- 1.4
-
getHeaderFieldInt
返回解析为数字的指定字段的值。存在此形式的
getHeaderField是因为某些连接类型(例如,http-ng)具有预解析的头。该连接类型的类可以覆盖此方法并绕过解析。- 参数:
-
name- 头字段的名称。 -
defaultValue- 默认值。 - 返回:
-
解析为整数的指定字段的值。如果字段缺失或格式错误,则返回
defaultValue值。
-
getHeaderFieldLong
返回解析为数字的指定字段的值。存在此形式的
getHeaderField是因为某些连接类型(例如,http-ng)具有预解析的头。该连接类型的类可以覆盖此方法并绕过解析。- 参数:
-
name- 头字段的名称。 -
defaultValue- 默认值。 - 返回:
-
解析为长整型的指定字段的值。如果字段缺失或格式错误,则返回
defaultValue值。 - 自版本:
- 1.7
-
getHeaderFieldDate
返回解析为日期的指定字段的值。结果是由指定字段表示的自1970年1月1日GMT以来的毫秒数。存在此形式的
getHeaderField是因为某些连接类型(例如,http-ng)具有预解析的头。该连接类型的类可以覆盖此方法并绕过解析。- 参数:
-
name- 头字段的名称。 -
defaultValue- 默认值。 - 返回:
-
解析为日期的字段的值。如果字段缺失或格式错误,则返回
defaultValue参数的值。
-
getHeaderFieldKey
返回第n个头字段的键。某些实现可能将第0个头字段视为特殊情况,在这种情况下,getHeaderField(0)可能返回某个值,但getHeaderFieldKey(0)返回null。对于n > 0,如果字段少于n+1个,则返回null。- 参数:
-
n- 一个索引,其中n>=0 - 返回:
-
第
n个头字段的键,如果字段少于n+1个且n > 0。
-
getHeaderField
- 参数:
-
n- 一个索引,其中n>=0 - 返回:
-
第
n个头字段的值,如果字段少于n+1个则返回null。 - 另请参见:
-
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数组 - 返回值:
-
获取的对象,是在classes数组中指定类型的第一个匹配项。如果不支持任何请求的类型,则返回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所需的权限。
权限通常用于两个目的:保护通过URLConnection获取的对象的缓存,并检查接收者有权了解特定URL的权限。在第一种情况下,应在获取对象之后获取权限。例如,在HTTP连接中,这将表示连接到最终获取数据的主机所需的权限。在第二种情况下,应在连接之前获取和测试权限。
- 返回值:
- 表示由此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。默认值为true。
- 参数:
-
doinput- 新值。 - 抛出:
-
IllegalStateException- 如果已连接 - 参见:
-
getDoInput
public boolean getDoInput()返回此URLConnection的doInput标志的值。- 返回值:
-
此
URLConnection的doInput标志的值。 - 参见:
-
setDoOutput
public void setDoOutput(boolean dooutput) 将此URLConnection的doOutput字段的值设置为指定值。URL连接可用于输入和/或输出。如果打算使用URL连接进行输出,则将doOutput标志设置为true,否则设置为false。默认值为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字段的默认值。此默认值是"粘性"的,是所有URLConnection的静态状态的一部分。此标志适用于接下来创建的下一个和所有后续的URLConnection。
- 返回值:
-
allowUserInteraction字段的默认值。 - 参见:
-
setUseCaches
public void setUseCaches(boolean usecaches) 将此URLConnection的useCaches字段的值设置为指定值。一些协议会对文档进行缓存。偶尔,能够"穿透"并忽略缓存是很重要的(例如,浏览器中的"重新加载"按钮)。如果连接的UseCaches标志为true,则允许连接使用它可以使用的所有缓存。如果为false,则应忽略缓存。默认值来自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标志的默认值。此默认值是“粘性”的,是所有URLConnection的静态状态的一部分。此标志适用于接下来创建的所有URLConnection,以及所有后续创建的URLConnection。可以使用
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- 需要其默认UseCaches设置的协议 - 返回:
-
给定协议的
useCaches标志的默认值。 - 自版本:
- 9
-
setRequestProperty
设置通用请求属性。如果具有相同键的属性已经存在,则用新值覆盖其值。注意:HTTP要求所有可以合法具有相同键的多个实例的请求属性使用逗号分隔的列表语法,这使得多个属性可以附加到单个属性中。
- 参数:
-
key- 请求所知的关键字(例如,"Accept")。 -
value- 与之关联的值。 - 抛出:
-
IllegalStateException- 如果已经连接 -
NullPointerException- 如果键为null - 参见:
-
addRequestProperty
添加由键值对指定的通用请求属性。如果已存在与相同键关联的值,则此方法不会覆盖现有值。如果在给定子类中使用的协议不支持将值附加到映射,则此方法可能不执行任何操作。- 参数:
-
key- 请求所知的关键字(例如,"Accept")。 -
value- 与之关联的值。 - 抛出:
-
IllegalStateException- 如果已经连接 -
NullPointerException- 如果键为null - 自版本:
- 1.4
- 参见:
-
getRequestProperty
返回此连接的指定命名通用请求属性的值。- 参数:
-
key- 请求所知的关键字(例如,"Accept")。 - 返回:
- 此连接的指定命名通用请求属性的值。如果键为null,则返回null。
- 抛出:
-
IllegalStateException- 如果已经连接 - 参见:
-
getRequestProperties
返回此连接的通用请求属性的不可修改Map。Map键是表示请求标头字段名称的字符串。每个Map值是表示相应字段值的不可修改字符串列表。如果通过addRequestProperty(String, String)方法添加了给定键的多个值,则这些值将按添加顺序返回。此方法必须保留这些值的插入顺序。当为给定键添加多个值时,此方法的默认实现保留插入顺序。这些值按添加顺序返回。- 返回:
- 此连接的通用请求属性的Map。
- 抛出:
-
IllegalStateException- 如果已经连接 - 自版本:
- 1.4
-
setDefaultRequestProperty
Deprecated.The instance specific setRequestProperty method should be used after an appropriate instance of URLConnection is obtained. Invoking this method will have no effect.设置通用请求属性的默认值。创建URLConnection时,将使用这些属性进行初始化。- 参数:
-
key- 请求所知的关键字(例如,"Accept")。 -
value- 与键关联的值。 - 参见:
-
getDefaultRequestProperty
Deprecated.The instance specific getRequestProperty method should be used after an appropriate instance of URLConnection is obtained.返回默认请求属性的值。默认请求属性将设置为每个连接。- 参数:
-
key- 请求所知的关键字(例如,"Accept")。 - 返回:
- 指定键的默认请求属性的值。
- 参见:
-
setContentHandlerFactory
设置应用程序的ContentHandlerFactory。应用程序最多可以调用一次此方法。ContentHandlerFactory实例用于根据内容类型构造内容处理程序。如果存在安全管理器,此方法首先调用安全管理器的
checkSetFactory方法以确保允许该操作。这可能导致SecurityException。- 参数:
-
fac- 所需的工厂。 - 抛出:
-
Error- 如果工厂已经定义。 -
SecurityException- 如果存在安全管理器且其checkSetFactory方法不允许该操作。 - 参见:
-
guessContentTypeFromName
尝试根据URL的指定“file”组件确定对象的内容类型。这是一个方便的方法,可以被覆盖getContentType方法的子类使用。- 参数:
-
fname- 文件名。 - 返回:
- 根据文件名猜测对象的内容类型。
- 参见:
-
guessContentTypeFromStream
尝试根据输入流开头的字符确定输入流的类型。此方法可供覆盖getContentType方法的子类使用。理想情况下,不应该需要此例程。但许多
http服务器返回不正确的内容类型;此外,还有许多非标准扩展。直接检查字节以确定内容类型通常比相信http服务器声明的内容类型更准确。- 参数:
-
is- 支持标记的输入流。 - 返回:
-
猜测的内容类型,如果无法确定则返回
null。 - 抛出:
-
IOException- 在读取输入流时发生I/O错误时抛出。 - 参见:
-