-
-
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()
-
-
HttpURLConnection API 使用手册
最新推荐文章于 2024-07-31 18:23:27 发布