-
java.net
类 URLConnectionjava.lang.Object java.net.URLConnection
-
直接已知子类:
- HttpURLConnection, JarURLConnection
public abstract class URLConnection
extends
Object
抽象类 URLConnection
是所有类的超类,它代表应用程序和 URL 之间的通信链接。此类的实例可用于读取和写入此 URL 引用的资源。通常,创建一个到 URL 的连接需要几个步骤:
openConnection() | connect() |
---|---|
对影响到远程资源连接的参数进行操作。 | 与资源交互;查询头字段和内容。 |
时间
- 通过在 URL 上调用
openConnection
方法创建连接对象。 - 操作设置参数和一般请求属性。
- 使用
connect
方法建立到远程对象的实际连接。 - 远程对象变为可用。远程对象的头字段和内容变为可访问。
使用以下方法修改设置参数:
setAllowUserInteraction
setDoInput
setDoOutput
setIfModifiedSince
setUseCaches
使用以下方法修改一般请求属性:
setRequestProperty
使用 setDefaultAllowUserInteraction
和 setDefaultUseCaches
可设置 AllowUserInteraction
和 UseCaches
参数的默认值。
上面每个 set
方法都有一个用于检索参数值或一般请求属性值的对应 get
方法。适用的具体参数和一般请求属性取决于协议。
在建立到远程对象的连接后,以下方法用于访问头字段和内容:
getContent
getHeaderField
getInputStream
getOutputStream
某些头字段需要经常访问。以下方法:
getContentEncoding
getContentLength
getContentType
getDate
getExpiration
getLastModifed
提供对这些字段的便捷访问。getContent
方法使用 getContentType
方法以确定远程对象类型;子类重写 getContentType
方法很容易。
一般情况下,所有的预连接参数和一般请求属性都可忽略:预连接参数和一般请求属性默认为敏感值。对于此接口的大多数客户端而言,只有两个感兴趣的方法:getInputStream
和getContent
,它们通过便捷方法镜像到 URL
类中。
有关 http
连接的请求属性和头字段的更多信息,可从以下位置找到:
有关http://www.ietf.org/rfc/rfc2068.txt
fileNameMap
的注意事项:在 JDK 1.1.6 以前的版本中,
URLConnection
的
fileNameMap
为公开字段。在 JDK 1.1.6 及以后的版本中,
fileNameMap
为私有;对其添加了 accessor 和 mutator 方法
getFileNameMap
及
setFileNameMap
以便访问。
Compatibility
页中也对此更改进行了介绍。 完成请求后,在一个
URLConnection
的
InputStream
或
OutputStream
上调用
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() 返回 URLConnection 的 useCaches 标志的默认值。 |
boolean | getDoInput() 返回此 URLConnection 的 doInput 标志的值。 |
boolean | getDoOutput() 返回此 URLConnection 的 doOutput 标志的值。 |
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() 返回此 URLConnection 的 URL 字段的值。 |
boolean | getUseCaches() 返回此 URLConnection 的 useCaches 字段的值。 |
static String | guessContentTypeFromName(String fname) 根据 URL 的指定 "file" 部分尝试确定对象的内容类型。 |
static String | guessContentTypeFromStream(InputStream is) 根据输入流的开始字符尝试确定输入流的类型。 |
void | setAllowUserInteraction(boolean allowuserinteraction) 设置此 URLConnection 的 allowUserInteraction 字段的值。 |
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) 将此 URLConnection 的 doInput 字段的值设置为指定的值。 |
void | setDoOutput(boolean dooutput) 将此 URLConnection 的 doOutput 字段的值设置为指定的值。 |
static void | setFileNameMap(FileNameMap map) 设置 FileNameMap。 |
void | setIfModifiedSince(long ifmodifiedsince) 将此 URLConnection 的 ifModifiedSince 字段的值设置为指定的值。 |
void | setReadTimeout(int timeout) 将读超时设置为指定的超时,以毫秒为单位。 |
void | setRequestProperty(String key, String value) 设置一般请求属性。 |
void | setUseCaches(boolean usecaches) 将此 URLConnection 的 useCaches 字段的值设置为指定的值。 |
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 参数的值。
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
。
allowUserInteraction
protected boolean allowUserInteraction
-
如果为
true
,则在允许用户交互(例如弹出一个身份验证对话框)的上下文中对此URL
进行检查。如果为false
,则不允许有任何用户交互。使用
setAllowUserInteraction
方法可对此字段的值进行设置。其值由getAllowUserInteraction
方法返回。其默认值为上一次调用setDefaultAllowUserInteraction
方法所用的参数的值。
useCaches
protected boolean useCaches
-
如果为
true
,则只要有条件就允许协议使用缓存。如果为false
,则该协议始终必须获得此对象的新副本。此字段由
setUseCaches
方法设置。其值由getUseCaches
方法返回。其默认值为上一次调用
setDefaultUseCaches
方法时给定的值。
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()
- 从数据文件加载文件名映射(一个 mimetable)。它首先尝试加载由 "content.types.user.table" 属性定义的特定于用户的表。如果加载失败,它会尝试加载位于 java 主目录下的 lib/content-types.properties 中的默认内置表。
-
-
返回:
- FileNameMap 从以下版本开始:
- 1.2 另请参见:
-
setFileNameMap(java.net.FileNameMap)
setFileNameMap
public static void setFileNameMap(FileNameMap map)
-
设置 FileNameMap。
如果有安全管理器,此方法首先调用安全管理器的
checkSetFactory
方法以确保允许该操作。这可能会导致抛出 SecurityException 异常。 -
-
参数:
-
map
- 要设置的 FileNameMap
抛出:
-
SecurityException
- 如果安全管理器存在并且其checkSetFactory
方法不允许进行此操作。
从以下版本开始:
- 1.2 另请参见:
-
SecurityManager.checkSetFactory()
,getFileNameMap()
-
connect
public abstract void connect() throws IOException
-
打开到此 URL 引用的资源的通信链接(如果尚未建立这样的连接)。
如果在已打开连接(此时
connected
字段的值为true
)的情况下调用connect
方法,则忽略该调用。URLConnection 对象经历两个阶段:首先创建对象,然后建立连接。在创建对象之后,建立连接之前,可指定各种选项(例如,doInput 和 UseCaches)。连接后再进行设置就会发生错误。连接后才能进行的操作(例如 getContentLength),如有必要,将隐式执行连接。
-
-
抛出:
-
SocketTimeoutException
- 如果在建立连接之前超时期满 -
IOException
- 如果打开连接时发生 I/O 错误。
另请参见:
-
connected
,getConnectTimeout()
,setConnectTimeout(int)
-
setConnectTimeout
public void setConnectTimeout(int timeout)
-
设置一个指定的超时值(以毫秒为单位),该值将在打开到此 URLConnection 引用的资源的通信链接时使用。如果在建立连接之前超时期满,则会引发一个 java.net.SocketTimeoutException。超时时间为零表示无穷大超时。
此方法的一些非标准实现可能忽略指定的超时。要查看连接超时设置,请调用 getConnectTimeout()。
-
-
参数:
-
timeout
- 一个指定连接超时值的int
,以毫秒为单位
抛出:
-
IllegalArgumentException
- 如果超时参数为负
从以下版本开始:
- 1.5 另请参见:
-
getConnectTimeout()
,connect()
-
getConnectTimeout
public int getConnectTimeout()
-
返回连接超时设置。
返回 0 表明该选项被禁用(即超时为无穷大)。
-
-
返回:
-
一个指示连接超时值的
int
,以毫秒为单位
从以下版本开始:
- 1.5 另请参见:
-
setConnectTimeout(int)
,connect()
-
一个指示连接超时值的
setReadTimeout
public void setReadTimeout(int timeout)
-
将读超时设置为指定的超时,以毫秒为单位。用一个非零值指定在建立到资源的连接后从 Input 流读入时的超时时间。如果在数据可读取之前超时期满,则会引发一个 java.net.SocketTimeoutException。超时时间为零表示无穷大超时。
此方法的一些非标准实现会忽略指定的超时。要查看读入超时设置,请调用 getReadTimeout()。
-
-
参数:
-
timeout
- 一个指定要使用的超时值的int
,以毫秒为单位
抛出:
-
IllegalArgumentException
- 如果超时参数为负
从以下版本开始:
- 1.5 另请参见:
-
getReadTimeout()
,InputStream.read()
-
getReadTimeout
public int getReadTimeout()
- 返回读入超时设置。返回 0 表明该选项被禁用(即超时为无穷大)。
-
-
返回:
-
一个指示读入超时值的
int
,以毫秒为单位
从以下版本开始:
- 1.5 另请参见:
-
setReadTimeout(int)
,InputStream.read()
-
一个指示读入超时值的
getURL
public URL getURL()
-
返回此
URLConnection
的URL
字段的值。 -
-
返回:
-
此
URLConnection
的URL
字段的值。
另请参见:
-
url
-
此
getContentLength
public int getContentLength()
-
返回
content-length
头字段的值。 -
-
返回:
-
此连接的 URL 引用的资源的内容长度,或者如果内容长度未知,则返回
-1
。
-
此连接的 URL 引用的资源的内容长度,或者如果内容长度未知,则返回
getContentType
public String getContentType()
-
返回
content-type
头字段的值。 -
-
返回:
-
该 URL 引用的资源的内容类型,或者如果类型为未知,则返回
null
。
另请参见:
-
getHeaderField(java.lang.String)
-
该 URL 引用的资源的内容类型,或者如果类型为未知,则返回
getContentEncoding
public String getContentEncoding()
-
返回
content-encoding
头字段的值。 -
-
返回:
-
该 URL 引用的资源的内容编码,或者如果编码为未知,则返回
null
。
另请参见:
-
getHeaderField(java.lang.String)
-
该 URL 引用的资源的内容编码,或者如果编码为未知,则返回
getExpiration
public long getExpiration()
-
返回
expires
头字段的值。 -
-
返回:
- 此 URL 引用的资源的期满日期,或者如果为未知,则返回 0。该值为距离格林威治标准时间 1970 年 1 月 1 日的毫秒数。 另请参见:
-
getHeaderField(java.lang.String)
getDate
public long getDate()
-
返回
date
头字段的值。 -
-
返回:
-
该 URL 引用的资源的发送日期,或者如果为未知,则返回
0
。返回的值为距离格林威治标准时间 1970 年 1 月 1 日的毫秒数。
另请参见:
-
getHeaderField(java.lang.String)
-
该 URL 引用的资源的发送日期,或者如果为未知,则返回
getLastModified
public long getLastModified()
-
返回
last-modified
头字段的值。结果为距离格林威治标准时间 1970 年 1 月 1 日的毫秒数。 -
-
返回:
-
此
URLConnection
引用的资源的上次修改日期,或者如果为未知,则返回 0。
另请参见:
-
getHeaderField(java.lang.String)
-
此
getHeaderField
public String getHeaderField(String name)
-
返回指定的头字段的值。
如果在连接上调用时多次设置头字段的值,每次设置的值又可能不同,则只返回最后一个设置的值。
-
-
参数:
-
name
- 头字段的名称。
返回:
-
指定的头字段的值,或者如果头中没有这样一个字段,则返回
null
。
-
getHeaderFields
public Map<String,List<String>> getHeaderFields()
- 返回头字段的不可修改的 Map。Map 键是表示 response-header 字段名称的 String。每个 Map 值为一个不可修改的 String 的列表,它们代表相应的字段值。
-
-
返回:
- 头字段的 Map 从以下版本开始:
- 1.4
getHeaderFieldInt
public int getHeaderFieldInt(String name, int Default)
-
返回解析为数字的指定字段的值。
有些连接类型(例如
http-ng
)具有预解析头,所以存在这种形式的getHeaderField
。用于这种连接类型的类可重写此方法从而解析过程。 -
-
参数:
-
name
- 头字段的名称。 -
Default
- 默认值。
返回:
-
指定字段的值,解析为整数。如果该字段缺少或有错误,则返回
Default
值。
-
getHeaderFieldDate
public long getHeaderFieldDate(String name, long Default)
-
返回解析为日期的指定字段的值。结果为指定字段表示的距离格林威治标准时间 1970 年 1 月 1 日的毫秒数。
有些连接类型(例如
http-ng
)具有预解析头,所以存在这种形式的getHeaderField
。用于该类型的连接可重写此方法和缩短解析过程。 -
-
参数:
-
name
- 头字段的名称。 -
Default
- 默认值。
返回:
-
字段的值,解析为日期。如果该字段缺少或有错误,则返回
Default
参数的值。
-
getHeaderFieldKey
public String getHeaderFieldKey(int n)
-
返回第
n
个头字段的键。如果少于n+1
个字段,则返回null
。 -
-
参数:
-
n
- 一个索引,n>=0
返回:
-
对应第
n
个头字段的键,或者如果少于n+1
个字段,则返回null
。
-
getHeaderField
public String getHeaderField(int n)
-
返回第
n
个头字段的值。如果少于n+1
个字段,则返回null
。此方法可与
getHeaderFieldKey
方法配合使用,以迭代消息中的所有头。 -
-
参数:
-
n
- 一个索引,n>=0
返回:
-
第
n
个头字段的值,或者如果少于n+1
个字段,则返回null
另请参见:
-
getHeaderFieldKey(int)
-
getContent
public Object getContent() throws IOException
-
检索此 URL 连接的内容。
此方法首先通过调用
getContentType
方法确定对象的内容类型。如果这是该应用程序第一次遇到的特定内容类型,则会创建适用于该类型的内容处理程序:- 如果该应用程序已使用
setContentHandlerFactory
方法建立了内容处理程序工厂实例,则调用此实例的createContentHandler
方法,内容类型为其中的一个参数;结果为该内容类型的内容处理程序。 - 如果尚未建立任何内容处理程序工厂,或者如果工厂的
createContentHandler
方法返回null
,则应用程序会加载以下名称的类:sun.net.www.content.<contentType>
句点
('.')替换,所有其他非字母数字字符用下划线 '_
'替换。字母数字字符特指 26 个大写 ASCII 字母 'A
' 到 'Z
',26 个小写 ASCII 字母 'a
' 到 'z
'以及 10 个 ASCII 数字 '0
' 到 '9
'。如果指定的类不存在,或者不是ContentHandler
的子类,则抛出一个UnknownServiceException
。
- 如果该应用程序已使用
-
-
返回:
-
获取的对象。应使用
instanceof
运算符来确定返回的对象的具体类型。
抛出:
-
IOException
- 如果获取内容时发生 I/O 错误。 -
UnknownServiceException
- 如果协议不支持内容类型。
另请参见:
-
ContentHandlerFactory.createContentHandler(java.lang.String)
,getContentType()
,setContentHandlerFactory(java.net.ContentHandlerFactory)
-
获取的对象。应使用
getContent
public Object getContent(Class[] classes) throws IOException
- 检索此 URL 连接的内容。
-
-
参数:
-
classes
- 指示请求的类型的Class
数组
返回:
-
获取的第一个与类数组中指定的类型相匹配的对象。如果请求的类型都不支持,则返回 null。应使用
instanceof
运算符来确定返回的对象的具体类型。
抛出:
-
IOException
- 如果获取内容时发生 I/O 错误。 -
UnknownServiceException
- 如果协议不支持内容类型。
另请参见:
-
getContent()
,ContentHandlerFactory.createContentHandler(java.lang.String)
,getContent(java.lang.Class[])
,setContentHandlerFactory(java.net.ContentHandlerFactory)
-
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 所需的权限。
使用权限通常有两个目的:保护通过 URLConnection 获取的对象的缓存;检查接收方的权限以了解特定的 URL。第一种情况下,应在获取对象之后 再获取权限。例如,在一个 HTTP 连接中,这将代表连接到最终将从该主机获取数据的主机的权限。第二种情况下,应在连接之前 对权限进行获取和检查。
-
-
返回:
- 代表建立此 URLConnection 表示的连接所需的权限的权限对象。 抛出:
-
IOException
- 如果计算权限需要网络或文件 I/O 并且在计算过程中出现异常。
getInputStream
public InputStream getInputStream() throws IOException
- 返回从此打开的连接读取的输入流。 在读取返回的输入流时,如果在数据可供读取之前达到读入超时时间,则会抛出 SocketTimeoutException。
-
-
返回:
- 从此打开的连接读入的输入流。 抛出:
-
IOException
- 如果在创建输入流时发生 I/O 错误。 -
UnknownServiceException
- 如果协议不支持输入。
另请参见:
-
setReadTimeout(int)
,getReadTimeout()
getOutputStream
public OutputStream getOutputStream() throws IOException
- 返回写入到此连接的输出流。
-
-
返回:
- 写入到此连接的输出流。 抛出:
-
IOException
- 如果在创建输出流时发生 I/O 错误。 -
UnknownServiceException
- 如果协议不支持输出。
toString
public String toString()
setDoInput
public void setDoInput(boolean doinput)
-
将此
URLConnection
的doInput
字段的值设置为指定的值。URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。
-
-
参数:
-
doinput
- 新值。
抛出:
-
IllegalStateException
- 如果已连接
另请参见:
-
doInput
,getDoInput()
-
getDoInput
public boolean getDoInput()
-
返回此
URLConnection
的doInput
标志的值。 -
-
返回:
-
此
URLConnection
的doInput
标志的值。
另请参见:
-
setDoInput(boolean)
-
此
setDoOutput
public void setDoOutput(boolean dooutput)
-
将此
URLConnection
的doOutput
字段的值设置为指定的值。URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 false。
-
-
参数:
-
dooutput
- 新值。
抛出:
-
IllegalStateException
- 如果已连接
另请参见:
-
getDoOutput()
-
getDoOutput
public boolean getDoOutput()
-
返回此
URLConnection
的doOutput
标志的值。 -
-
返回:
-
此
URLConnection
的doOutput
标志的值。
另请参见:
-
setDoOutput(boolean)
-
此
setAllowUserInteraction
public void setAllowUserInteraction(boolean allowuserinteraction)
-
设置此
URLConnection
的allowUserInteraction
字段的值。 -
-
参数:
-
allowuserinteraction
- 新值。
抛出:
-
IllegalStateException
- 如果已连接
另请参见:
-
getAllowUserInteraction()
-
getAllowUserInteraction
public boolean getAllowUserInteraction()
-
返回此对象的
allowUserInteraction
字段的值。 -
-
返回:
-
此对象的
allowUserInteraction
字段的值。
另请参见:
-
setAllowUserInteraction(boolean)
-
此对象的
setDefaultAllowUserInteraction
public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
-
将未来的所有
URLConnection
对象的allowUserInteraction
字段的默认值设置为指定的值。 -
-
参数:
-
defaultallowuserinteraction
- 新值。
另请参见:
-
getDefaultAllowUserInteraction()
-
getDefaultAllowUserInteraction
public static boolean getDefaultAllowUserInteraction()
-
返回
allowUserInteraction
字段的默认值。默认值为 "sticky",它是所有 URLConnection 的其中一种静态状态。此标志适用于下一个及后续创建的所有 URLConnection。
-
-
返回:
-
allowUserInteraction
字段的默认值。
另请参见:
-
setDefaultAllowUserInteraction(boolean)
-
setUseCaches
public void setUseCaches(boolean usecaches)
-
将此
URLConnection
的useCaches
字段的值设置为指定的值。有些协议用于文档缓存。有时候能够进行“直通”并忽略缓存尤其重要,例如浏览器中的“重新加载”按钮。如果连接中的 UseCaches 标志为 true,则允许连接使用任何可用的缓存。如果为 false,则忽略缓存。默认值来自 DefaultUseCaches,它默认为 true。
-
-
参数:
-
usecaches
- 一个指示是否允许缓存的boolean
值
抛出:
-
IllegalStateException
- 如果已连接
另请参见:
-
getUseCaches()
-
getUseCaches
public boolean getUseCaches()
-
返回此
URLConnection
的useCaches
字段的值。 -
-
返回:
-
此
URLConnection
的useCaches
字段的值。
另请参见:
-
setUseCaches(boolean)
-
此
setIfModifiedSince
public void setIfModifiedSince(long ifmodifiedsince)
-
将此
URLConnection
的ifModifiedSince
字段的值设置为指定的值。 -
-
参数:
-
ifmodifiedsince
- 新值。
抛出:
-
IllegalStateException
- 如果已连接
另请参见:
-
getIfModifiedSince()
-
getIfModifiedSince
public long getIfModifiedSince()
-
返回此对象的
ifModifiedSince
字段的值。 -
-
返回:
-
此对象的
ifModifiedSince
字段的值。
另请参见:
-
setIfModifiedSince(long)
-
此对象的
getDefaultUseCaches
public boolean getDefaultUseCaches()
-
返回
URLConnection
的useCaches
标志的默认值。默认值为 "sticky",它属于所有 URLConnection 的静态中的一部分。此标志适用于所有文本以及后续创建的所有 URLConnection。
-
-
返回:
-
URLConnection
的useCaches
标志的默认值。
另请参见:
-
setDefaultUseCaches(boolean)
-
setDefaultUseCaches
public void setDefaultUseCaches(boolean defaultusecaches)
-
将
useCaches
字段的默认值设置为指定的值。 -
-
参数:
-
defaultusecaches
- 新值。
另请参见:
-
getDefaultUseCaches()
-
setRequestProperty
public void setRequestProperty(String key, String value)
-
设置一般请求属性。如果已存在具有该关键字的属性,则用新值改写其值。
注:HTTP 要求所有能够合法拥有多个具有相同键的实例的请求属性,使用以逗号分隔的列表语法,这样可实现将多个属性添加到一个属性中。
-
-
参数:
-
key
- 用于识别请求的关键字(例如,"accept
")。 -
value
- 与该键关联的值。
抛出:
-
IllegalStateException
- 如果已连接 -
NullPointerException
- 如果键为null
另请参见:
-
getRequestProperty(java.lang.String)
-
addRequestProperty
public void addRequestProperty(String key, String value)
- 添加由键值对指定的一般请求属性。此方法不会改写与相同键关联的现有值。
-
-
参数:
-
key
- 用于识别请求的关键字(例如,"accept
")。 -
value
- 与该键关联的值。
抛出:
-
IllegalStateException
- 如果已连接 -
NullPointerException
- 如果键为 null
从以下版本开始:
- 1.4 另请参见:
-
getRequestProperties()
-
getRequestProperty
public String getRequestProperty(String key)
- 返回此连接指定的一般请求属性值。
-
-
参数:
-
key
- 用于识别请求的关键字(例如,"accept")。
返回:
- 此连接指定的一般请求属性值。如果键为 null,则返回 null。 抛出:
-
IllegalStateException
- 如果已连接
另请参见:
-
setRequestProperty(java.lang.String, java.lang.String)
-
getRequestProperties
public Map<String,List<String>> getRequestProperties()
- 返回一个由此连接的一般请求属性构成的不可修改的 Map。Map 键是一些表示 request-header 字段名称的 String。每个 Map 值为一个不可修改的 String 的列表,它代表相应的字段值。
-
-
返回:
- 此连接的一般请求属性的 Map。 抛出:
-
IllegalStateException
- 如果已连接
从以下版本开始:
- 1.4
setDefaultRequestProperty
@Deprecated public static void setDefaultRequestProperty(String key, String value)
- 已过时。 应在获得 URLConnection 的适当实例后使用特定 setRequestProperty 方法的实例。调用此方法没有任何作用。
-
设置一般请求属性的默认值。创建
URLConnection
时,用这些属性进行初始化。 -
-
参数:
-
key
- 用于识别请求的关键字(例如,"accept
")。 -
value
- 与该键关联的值。
另请参见:
-
setRequestProperty(java.lang.String,java.lang.String)
,getDefaultRequestProperty(java.lang.String)
-
getDefaultRequestProperty
@Deprecated public static String getDefaultRequestProperty(String key)
- 已过时。 应在获得 URLConnection 的适当实例后使用特定 getRequestProperty 方法的实例。
- 返回默认请求属性的值。为每个连接都设置了默认请求属性。
-
-
参数:
-
key
- 用于识别请求的关键字(例如,"accept")。
返回:
- 指定的键的默认请求属性的值。 另请参见:
-
getRequestProperty(java.lang.String)
,setDefaultRequestProperty(java.lang.String, java.lang.String)
-
setContentHandlerFactory
public static void setContentHandlerFactory(ContentHandlerFactory fac)
-
设置应用程序的
ContentHandlerFactory
。一个应用程序最多只能调用一次该方法。ContentHandlerFactory
实例用于根据内容类型构造内容处理程序。如果有安全管理器,此方法首先调用安全管理器的
checkSetFactory
方法以确保允许该操作。这可能会导致 SecurityException 异常。 -
-
参数:
-
fac
- 需要的工厂。
抛出:
-
Error
- 如果已经定义了工厂。 -
SecurityException
- 如果安全管理器存在并且其checkSetFactory
方法不允许进行此操作。
另请参见:
-
ContentHandlerFactory
,getContent()
,SecurityManager.checkSetFactory()
-
guessContentTypeFromName
public 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 错误。
另请参见:
-
InputStream.mark(int)
,InputStream.markSupported()
,getContentType()
-