- java.lang.Object
-
- java.net.URLConnection
-
- 已知直接子类:
-
HttpURLConnection
,JarURLConnection
public abstract class URLConnectionextends Object
抽象类URLConnection
是表示应用程序和URL之间的通信链接的所有类的超类。 此类的实例可用于读取和写入URL引用的资源。通常,创建与URL的连接是一个多步骤过程:
- 通过在URL上调用
openConnection
方法来创建连接对象。 - 操纵设置参数和一般请求属性。
- 使用
connect
方法实现与远程对象的实际连接。 - 远程对象变得可用。 可以访问标题字段和远程对象的内容。
使用以下方法修改设置参数:
-
setAllowUserInteraction
-
setDoInput
-
setDoOutput
-
setIfModifiedSince
-
setUseCaches
并使用以下方法修改常规请求属性:
-
setRequestProperty
可以使用方法
setDefaultAllowUserInteraction
和setDefaultUseCaches
设置AllowUserInteraction
和UseCaches
参数的默认值。上述
set
方法中的每一个都具有相应的get
方法来检索参数或一般请求属性的值。 适用的特定参数和一般请求属性是特定于协议的。在与远程对象建立连接后,以下方法用于访问标题字段和内容:
-
getContent
-
getHeaderField
-
getInputStream
-
getOutputStream
经常访问某些标题字段。 方法:
-
getContentEncoding
-
getContentLength
-
getContentType
-
getDate
-
getExpiration
-
getLastModified
提供对这些字段的便捷访问。
getContentType
方法由getContent
方法用于确定远程对象的类型; 子类可能会发现覆盖getContentType
方法很方便。在通常情况下,可以忽略所有预连接参数和一般请求属性:预连接参数和请求属性默认为合理值。 对于此接口的大多数客户端,只有两种有趣的方法:
getInputStream
和getContent
,它们通过便捷方法在URL
类中进行镜像。有关
http
连接的请求属性和标头字段的更多信息,请访问:http://www.ietf.org/rfc/rfc2616.txt
close()
的方法InputStream
或OutputStream
一个的URLConnection
的请求后,可能释放与此实例相关联的网络资源,除非特定的协议规范为其指定不同的行为。- 从以下版本开始:
- 1.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(类<?>[] classes)
检索此URL连接的内容。String
getContentEncoding()
返回content-encoding
标头字段的值。int
getContentLength()
返回content-length
标头字段的值。long
getContentLengthLong()
以content-length
返回content-length
标头字段的值。String
getContentType()
返回content-type
标头字段的值。long
getDate()
返回date
标头字段的值。static boolean
getDefaultAllowUserInteraction()
返回allowUserInteraction
字段的默认值。static String
getDefaultRequestProperty(String key)
已过时。在获得适当的URLConnection实例后,应使用特定于实例的getRequestProperty方法。boolean
getDefaultUseCaches()
返回URLConnection
的useCaches
标志的默认值。static boolean
getDefaultUseCaches(String protocol)
返回给定协议的useCaches
标志的默认值。boolean
getDoInput()
返回URLConnection
的doInput
标志的值。boolean
getDoOutput()
返回URLConnection
的doOutput
标志的值。long
getExpiration()
返回expires
标头字段的值。static FileNameMap
getFileNameMap()
从数据文件加载文件名映射(mimetable)。String
getHeaderField(int n)
返回的值n
th头字段。String
getHeaderField(String name)
返回指定标头字段的值。long
getHeaderFieldDate(String name, long Default)
返回作为日期解析的命名字段的值。int
getHeaderFieldInt(String name, int Default)
返回作为数字解析的命名字段的值。String
getHeaderFieldKey(int n)
返回n
th标头字段的键。long
getHeaderFieldLong(String name, long Default)
返回作为数字解析的命名字段的值。Map<String,List<String>>
getHeaderFields()
返回标头字段的不可修改的Map。long
getIfModifiedSince()
返回此对象的ifModifiedSince
字段的值。InputStream
getInputStream()
返回从此打开的连接读取的输入流。long
getLastModified()
返回last-modified
标头字段的值。OutputStream
getOutputStream()
返回写入此连接的输出流。Permission
getPermission()
返回一个权限对象,表示进行此对象表示的连接所需的权限。int
getReadTimeout()
返回读取超时的设置。 0 return意味着该选项被禁用(即无限超时)。Map<String,List<String>>
getRequestProperties()
返回此连接的一般请求属性的不可修改的Map。String
getRequestProperty(String key)
返回此连接的命名常规请求属性的值。URL
getURL()
返回此URLConnection
的URL
字段的值。boolean
getUseCaches()
返回此URLConnection
的useCaches
字段的值。static String
guessContentTypeFromName(String fname)
尝试根据URL的指定“文件”组件确定对象的内容类型。static String
guessContentTypeFromStream(InputStream is)
尝试根据输入流开头的字符确定输入流的类型。void
setAllowUserInteraction(boolean allowuserinteraction)
设置此URLConnection
的allowUserInteraction
字段的URLConnection
。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
字段的默认值设置为指定值。static void
setDefaultUseCaches(String protocol, boolean defaultVal)
将指定协议的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
表示形式。
-
-
-
字段详细信息
-
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
。- 另请参见:
-
getDoOutput()
,setDoOutput(boolean)
-
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
,则已建立通信链路。
-
-
构造方法详细信息
-
URLConnection
protected URLConnection(URL url)
构造指向指定URL的URL连接。 不会创建与URL引用的对象的连接。- 参数
-
url
- 指定的URL。
-
-
方法详细信息
-
getFileNameMap
public static FileNameMap getFileNameMap()
从数据文件加载文件名映射(mimetable)。 它将首先尝试加载由“content.types.user.table”属性定义的特定于用户的表。 如果失败,它会尝试加载默认的内置表。- 结果
- 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引用的资源的通信链接。如果在已打开连接时调用
connect
方法(由connected
字段指示值true
),则忽略该调用。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 return意味着该选项被禁用(即无限超时)。
- 结果
-
int
,指示连接超时值(以毫秒为单位) - 从以下版本开始:
- 1.5
- 另请参见:
-
setConnectTimeout(int)
,connect()
-
setReadTimeout
public void setReadTimeout(int timeout)
将读取超时设置为指定的超时(以毫秒为单位)。 非零值指定在与资源建立连接时从输入流读取时的超时。 如果在有可用于读取的数据之前超时到期,则引发java.net.SocketTimeoutException。 超时为零被解释为无限超时。此方法的某些非标准实现会忽略指定的超时。 要查看读取超时设置,请调用getReadTimeout()。
- 参数
-
timeout
-int
,指定要使用的超时值(以毫秒为单位) - 异常
-
IllegalArgumentException
- 如果超时参数为负数 - 从以下版本开始:
- 1.5
- 另请参见:
-
getReadTimeout()
,InputStream.read()
-
getReadTimeout
public int getReadTimeout()
返回读取超时的设置。 0 return意味着该选项被禁用(即无限超时)。- 结果
-
int
,指示读取超时值(以毫秒为单位) - 从以下版本开始:
- 1.5
- 另请参见:
-
setReadTimeout(int)
,InputStream.read()
-
getContentLength
public int getContentLength()
返回content-length
标头字段的值。注意 :
getContentLengthLong()
应优先于此方法,因为它返回long
,因此更具可移植性。- 结果
- 此连接的URL引用的资源的内容长度,如果内容长度未知,或者内容长度大于Integer.MAX_VALUE,
-1
。
-
getContentLengthLong
public long getContentLengthLong()
以content-length
返回content-length
标头字段的值。- 结果
- 此连接的URL引用的资源的内容长度,如果内容长度未知,
-1
。 - 从以下版本开始:
- 1.7
-
getContentType
public String getContentType()
返回content-type
标头字段的值。- 结果
- URL引用的资源的内容类型,如果未知,
null
。 - 另请参见:
-
getHeaderField(java.lang.String)
-
getContentEncoding
public String getContentEncoding()
返回content-encoding
标头字段的值。- 结果
- URL引用的资源的内容编码,如果未知,
null
。 - 另请参见:
-
getHeaderField(java.lang.String)
-
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)
-
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键是表示响应头字段名称的字符串。 每个Map值都是一个不可修改的字符串列表,表示相应的字段值。- 结果
- 标题字段的映射
- 从以下版本开始:
- 1.4
-
getHeaderFieldInt
public int getHeaderFieldInt(String name, int Default)
返回作为数字解析的命名字段的值。存在这种形式的
getHeaderField
是因为某些连接类型(例如,http-ng
)具有预解析的头部。 该连接类型的类可以覆盖此方法并使解析短路。- 参数
-
name
- 标头字段的名称。 -
Default
- 默认值。 - 结果
- 命名字段的值,解析为整数。 如果字段缺失或格式错误,则返回
Default
值。
-
getHeaderFieldLong
public long getHeaderFieldLong(String name, long Default)
返回作为数字解析的命名字段的值。存在这种形式的
getHeaderField
是因为某些连接类型(例如,http-ng
)具有预解析的头部。 该连接类型的类可以覆盖此方法并使解析短路。- 参数
-
name
- 标头字段的名称。 -
Default
- 默认值。 - 结果
- 命名字段的值,解析为long。 如果字段缺失或格式错误,则返回
Default
值。 - 从以下版本开始:
- 1.7
-
getHeaderFieldDate
public long getHeaderFieldDate(String name, long Default)
返回作为日期解析的命名字段的值。 结果是自命名字段表示的格林威治标准时间1970年1月1日以来的毫秒数。这种形式的
getHeaderField
存在是因为某些连接类型(例如,http-ng
)具有预解析的头。 该连接类型的类可以覆盖此方法并使解析短路。- 参数
-
name
- 标头字段的名称。 -
Default
- 默认值。 - 结果
- 字段的值,解析为日期。 如果字段缺失或格式错误,则返回
Default
参数的值。
-
getHeaderFieldKey
public String getHeaderFieldKey(int n)
返回的关键n
th头字段。 如果少于n+1
字段,则返回null
。- 参数
-
n
- 一个索引,其中n>=0
- 结果
- 键为
n
th头字段,或者null
如果有不是较少n+1
字段。
-
getHeaderField
public String getHeaderField(int n)
- 参数
-
n
- 一个索引,其中n>=0
- 结果
- 所述的值
n
th头字段或null
如果存在少于n+1
字段 - 另请参见:
-
getHeaderFieldKey(int)
-
getContent
public Object getContent() throws IOException
检索此URL连接的内容。此方法首先通过调用
getContentType
方法确定对象的内容类型。 如果这是应用程序第一次看到该特定内容类型,则会创建该内容类型的内容处理程序。这样做如下:
- 如果应用程序使用
setContentHandlerFactory
方法设置了内容处理程序工厂实例,则使用内容类型作为参数调用该实例的createContentHandler
方法; 结果是该内容类型的内容处理程序。 - 如果尚未设置
ContentHandlerFactory
,或者工厂的createContentHandler
方法返回null
,则使用ServiceLoader机制来定位使用系统类加载器的ContentHandlerFactory实现。 工厂所在的顺序是特定于实现的,并且实现可以自由地缓存所定位的工厂。 一个ServiceConfigurationError ,Error
或RuntimeException
从抛出createContentHandler
,如果遇到,将传播到调用线程。 如果实例化,则使用内容类型调用每个工厂的createContentHandler
方法,直到工厂返回非null,或者所有工厂都已用完为止。 - 如果失败,此方法会尝试加载
ContentHandler
定义的内容处理程序类。 如果该类不存在,或者不是ContentHandler
的子类,则抛出UnknownServiceException
。
- 结果
- 获取的对象。 应使用
instanceof
运算符来确定返回的特定对象类型。 - 异常
-
IOException
- 如果在获取内容时发生I / O错误。 -
UnknownServiceException
- 如果协议不支持内容类型。 - 另请参见:
-
ContentHandlerFactory.createContentHandler(java.lang.String)
,getContentType()
,setContentHandlerFactory(java.net.ContentHandlerFactory)
- 如果应用程序使用
-
getContent
public Object getContent(类<?>[] classes) throws IOException
检索此URL连接的内容。- 参数
-
classes
- 指示所请求类型的类
数组 - 结果
- 获取的对象是classes数组中指定类型的第一个匹配项。 如果不支持所请求的类型,则返回null。 应使用
instanceof
运算符来确定返回的特定对象类型。 - 异常
-
IOException
- 如果在获取内容时发生I / O错误。 -
UnknownServiceException
- 如果协议不支持内容类型。 - 从以下版本开始:
- 1.3
- 另请参见:
-
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连接所需权限的权限。 例如,URLConnection
表示file:
URL将返回java.io.FilePermission
对象。返回的权限可能取决于连接的状态。 例如,连接前的权限可能与连接后的权限不同。 例如,HTTP服务器(例如foo.com)可能会将连接重定向到其他主机,例如bar.com。 在连接之前,连接返回的权限将表示连接到foo.com所需的权限,而连接后返回的权限将是bar.com。
权限通常用于两个目的:保护通过URLConnections获取的对象的缓存,以及检查收件人了解特定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()
返回此URL连接的String
表示形式。
-
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
字段的URLConnection
。- 参数
-
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”,是所有URLConnections的静态状态的一部分。 此标志适用于下一个以及随后创建的所有URLConnections。
- 结果
-
allowUserInteraction
字段的默认值。 - 另请参见:
-
setDefaultAllowUserInteraction(boolean)
-
setUseCaches
public void setUseCaches(boolean usecaches)
将此URLConnection
的useCaches
字段的值设置为指定的值。有些协议会对文档进行缓存。 偶尔,能够“穿过”并忽略缓存(例如,浏览器中的“重新加载”按钮)是很重要的。 如果连接上的UseCaches标志为true,则允许连接使用它可以使用的任何缓存。 如果为false,则忽略缓存。 默认值来自defaultUseCaches,默认为true。 也可以使用
setDefaultUseCaches(String,boolean)
为每个协议设置默认值。- 参数
-
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”,是所有URLConnections的静态状态的一部分。 此标志适用于下一个以及随后创建的所有URLConnections。 使用
setDefaultUseCaches(String,boolean)
,每个协议可以覆盖此默认值- 结果
-
URLConnection
的useCaches
标志的默认值。 - 另请参见:
-
setDefaultUseCaches(boolean)
-
setDefaultUseCaches
public void setDefaultUseCaches(boolean defaultusecaches)
将useCaches
字段的默认值设置为指定值。 可以使用setDefaultUseCaches(String,boolean)
对每个协议覆盖此默认值- 参数
-
defaultusecaches
- 新值。 - 另请参见:
-
getDefaultUseCaches()
-
setDefaultUseCaches
public static void setDefaultUseCaches(String protocol, boolean defaultVal)
将指定协议的useCaches
字段的默认值设置为给定值。 此值将覆盖给定协议的setDefaultUseCaches(boolean)
设置的任何默认设置。 对此方法的连续调用会更改设置并影响该协议的所有未来连接的默认值。 协议名称不区分大小写。- 参数
-
protocol
- 为其设置默认值的协议 -
defaultVal
- 默认情况下是否为给定协议启用了缓存 - 从以下版本开始:
- 9
-
getDefaultUseCaches
public static boolean getDefaultUseCaches(String protocol)
返回给定协议的useCaches
标志的默认值。 如果为给定协议调用了setDefaultUseCaches(String,boolean)
,则返回该值。 否则,如果调用了setDefaultUseCaches(boolean)
,则返回该值。 如果两个方法都没有被调用,则返回值为true
。 协议名称不区分大小写。- 参数
-
protocol
- 需要defaultUseCaches设置的协议 - 结果
- 给定协议的
useCaches
标志的默认值。 - 从以下版本开始:
- 9
-
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
- 如果key为null - 从以下版本开始:
- 1.4
- 另请参见:
-
getRequestProperties()
-
getRequestProperty
public String getRequestProperty(String key)
返回此连接的命名常规请求属性的值。- 参数
-
key
- 请求已知的关键字(例如,“接受”)。 - 结果
- 此连接的命名常规请求属性的值。 如果key为null,则返回null。
- 异常
-
IllegalStateException
- 如果已连接 - 另请参见:
-
setRequestProperty(java.lang.String, java.lang.String)
-
getRequestProperties
public Map<String,List<String>> getRequestProperties()
返回此连接的一般请求属性的不可修改的Map。 Map键是表示请求标头字段名称的字符串。 每个Map值都是一个不可修改的字符串列表,表示相应的字段值。- 结果
- 此连接的常规请求属性的映射。
- 异常
-
IllegalStateException
- 如果已连接 - 从以下版本开始:
- 1.4
-
setDefaultRequestProperty
@Deprecatedpublic static void setDefaultRequestProperty(String key, String value)
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
- 与密钥关联的值。 - 另请参见:
-
setRequestProperty(java.lang.String,java.lang.String)
,getDefaultRequestProperty(java.lang.String)
-
getDefaultRequestProperty
@Deprecatedpublic static String getDefaultRequestProperty(String key)
Deprecated.The instance specific getRequestProperty method should be used after an appropriate instance of URLConnection is obtained.返回默认请求属性的值。 为每个连接设置默认请求属性。- 参数
-
key
- 请求已知的关键字(例如,“接受”)。 - 结果
- 指定键的默认请求属性的值。
- 另请参见:
-
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的指定“文件”组件确定对象的内容类型。 这是一种方便的方法,可以由覆盖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()
-
-