- java.lang.Object
-
- java.net.URLConnection
-
- 已知直接子类:
-
HttpURLConnection,JarURLConnection
public abstract class URLConnection extends Object
抽象类URLConnection是表示应用程序和URL之间的通信链接的所有类的超类。 该类的实例可以用于从URL引用的资源中读取和写入。 通常,创建与URL的连接是一个多步骤过程:Describes the process of creating a connection to a URL: openConnection() and connect() over time.openConnection()connect()Manipulate parameters that affect the connection to the remote resource. Interact with the resource; query header fields and contents.
---------------------------->
时间- 通过在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)
-
-
Field Summary
Fields Modifier and Type Field 描述 protected booleanallowUserInteraction如果是true,这个URL正在上下文中进行检查,其中允许用户交互(例如弹出验证对话)是有意义的。protected booleanconnected如果是false,则此连接对象尚未创建指定URL的通信链接。protected booleandoInput此变量由setDoInput方法设置。protected booleandoOutput该变量由setDoOutput方法设置。protected longifModifiedSince某些协议支持跳过对象的提取,除非对象在某个时间以前已被更新。protected URLurlURL表示打开此连接的万维网上的远程对象。protected booleanuseCaches如果是true,则允许协议使用缓存。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedURLConnection(URL url)构造与指定URL的URL连接。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 voidaddRequestProperty(String key, String value)添加由键值对指定的一般请求属性。abstract voidconnect()打开与此URL引用的资源的通信链接,如果此类连接尚未建立。booleangetAllowUserInteraction()返回此对象的allowUserInteraction字段的值。intgetConnectTimeout()返回连接超时的设置。ObjectgetContent()检索此URL连接的内容。ObjectgetContent(Class<?>[] classes)检索此URL连接的内容。StringgetContentEncoding()返回content-encoding标题字段的值。intgetContentLength()返回content-length标题字段的值。longgetContentLengthLong()返回content-length标题字段的值为long。StringgetContentType()返回content-type标题字段的值。longgetDate()返回date标题字段的值。static booleangetDefaultAllowUserInteraction()返回allowUserInteraction字段的默认值。static StringgetDefaultRequestProperty(String key)已过时。在获得适当的URLConnection实例之后,应该使用实例特定的getRequestProperty方法。booleangetDefaultUseCaches()返回默认值为URLConnection的useCaches标志。static booleangetDefaultUseCaches(String protocol)返回给定协议的useCaches标志的默认值。booleangetDoInput()返回该值为URLConnection的doInput标志。booleangetDoOutput()返回此值URLConnection的doOutput标志。longgetExpiration()返回expires标题字段的值。static FileNameMapgetFileNameMap()从数据文件加载文件名映射(模拟)。StringgetHeaderField(int n)返回的值nth头字段。StringgetHeaderField(String name)返回命名头字段的值。longgetHeaderFieldDate(String name, long Default)返回以日期解析的命名字段的值。intgetHeaderFieldInt(String name, int Default)返回被解析为命名字段的值。StringgetHeaderFieldKey(int n)返回的关键nth头字段。longgetHeaderFieldLong(String name, long Default)返回被解析为命名字段的值。Map<String,List<String>>getHeaderFields()返回不可修改的标题字段的映射。longgetIfModifiedSince()返回此对象的ifModifiedSince字段的值。InputStreamgetInputStream()返回从此打开的连接读取的输入流。longgetLastModified()返回last-modified标题字段的值。OutputStreamgetOutputStream()返回写入此连接的输出流。PermissiongetPermission()返回一个权限对象,该对象表示创建此对象所表示的连接所需的权限。intgetReadTimeout()返回读取超时的设置。 0返回意味着该选项被禁用(即无限超时)。Map<String,List<String>>getRequestProperties()返回此连接的一般请求属性的不可修改映射。StringgetRequestProperty(String key)返回此连接的命名的常规请求属性的值。URLgetURL()返回此URLConnection的URL字段的值。booleangetUseCaches()返回此URLConnection的useCaches字段的值。static StringguessContentTypeFromName(String fname)根据URL的指定“文件”组件,尝试确定对象的内容类型。static StringguessContentTypeFromStream(InputStream is)根据输入流开头的字符,尝试确定输入流的类型。voidsetAllowUserInteraction(boolean allowuserinteraction)设置这个URLConnection的allowUserInteraction字段的URLConnection。voidsetConnectTimeout(int timeout)设置打开与此URLConnection引用的资源的通信链接时使用的指定超时值(以毫秒为单位)。static voidsetContentHandlerFactory(ContentHandlerFactory fac)设置应用程序的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 voidsetFileNameMap(FileNameMap map)设置FileNameMap。voidsetIfModifiedSince(long ifmodifiedsince)将此URLConnection的ifModifiedSince字段的值设置为指定值。voidsetReadTimeout(int timeout)将读取超时设置为指定的超时时间,以毫秒为单位。voidsetRequestProperty(String key, String value)设置一般请求属性。voidsetUseCaches(boolean usecaches)将此URLConnection的useCaches字段的值设置为指定值。StringtoString()返回此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()
从数据文件加载文件名映射(模拟)。 它将首先尝试加载由“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- 如果timeout参数为负 - 从以下版本开始:
- 1.5
- 另请参见:
-
getConnectTimeout(),connect()
-
getConnectTimeout
public int getConnectTimeout()
返回连接超时的设置。0返回意味着该选项被禁用(即无限超时)。
- 结果
-
一个表示连接超时值(毫秒)的
int - 从以下版本开始:
- 1.5
- 另请参见:
-
setConnectTimeout(int),connect()
-
setReadTimeout
public void setReadTimeout(int timeout)
将读取超时设置为指定的超时时间,以毫秒为单位。 非零值指定当连接建立到资源时从Input stream读取的超时。 如果在数据可用于读取之前超时超时,则会引发java.net.SocketTimeoutException。 超时为零被解释为无限超时。此方法的一些非标准实现忽略指定的超时。 要查看读取超时集,请调用getReadTimeout()。
- 参数
-
timeout- 一个int,指定要以毫秒为单位的超时值 - 异常
-
IllegalArgumentException- 如果timeout参数为负 - 从以下版本开始:
- 1.5
- 另请参见:
-
getReadTimeout(),InputStream.read()
-
getReadTimeout
public int getReadTimeout()
返回读取超时的设置。 0返回意味着该选项被禁用(即无限超时)。- 结果
-
一个
int,表示读取超时值(以毫秒为单位) - 从以下版本开始:
- 1.5
- 另请参见:
-
setReadTimeout(int),InputStream.read()
-
getContentLength
public int getContentLength()
返回content-length标题字段的值。注意 :
getContentLengthLong()应该优于此方法,因为它返回一个long,因此更便于携带。- 结果
-
如果内容长度未知,或者内容长度大于Integer.MAX_VALUE,则该连接的URL引用的资源的内容长度为
-1。
-
getContentLengthLong
public long getContentLengthLong()
返回content-length标题字段的值为long。- 结果
-
该连接的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日GMT以来的毫秒数。
- 另请参见:
-
getHeaderField(java.lang.String)
-
getDate
public long getDate()
返回date标题字段的值。- 结果
-
URL引用的资源的发送日期,如果不知道,
0。 返回的值是自1970年1月1日GMT以来的毫秒数。 - 另请参见:
-
getHeaderField(java.lang.String)
-
getLastModified
public long getLastModified()
返回last-modified标题字段的值。 结果是自1970年1月1日GMT以来的毫秒数。- 结果
-
该
URLConnection引用的资源的日期是最后一次修改,如果不知道,则为0。 - 另请参见:
-
getHeaderField(java.lang.String)
-
getHeaderField
public String getHeaderField(String name)
返回命名头字段的值。如果对可能不同的值多次设置相同标题的连接进行调用,则只返回最后一个值。
- 参数
-
name- 标题字段的名称。 - 结果
-
命名头字段的值,如果在标题中没有这样的字段,
null。
-
getHeaderFields
public Map<String,List<String>> getHeaderFields()
返回不可修改的标题字段的映射。 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- 默认值。 - 结果
-
命名字段的值,解析为长。
如果字段丢失或格式错误,则返回
Default值。 - 从以下版本开始:
- 1.7
-
getHeaderFieldDate
public long getHeaderFieldDate(String name, long Default)
返回以日期解析的命名字段的值。 结果是自1970年1月1日GMT以指定字段表示的毫秒数。存在这种形式的
getHeaderField,因为某些连接类型(例如,http-ng)具有预分析头。 该连接类型的类可以覆盖此方法并使解析短路。- 参数
-
name- 标题字段的名称。 -
Default- 默认值。 - 结果
-
该字段的值被解析为日期。
如果字段丢失或格式错误,则返回
Default参数的值。
-
getHeaderFieldKey
public String getHeaderFieldKey(int n)
返回的关键nth头字段。 如果少于n+1字段,则返回null。- 参数
-
n- 一个索引,其中n>=0 - 结果
-
键为
nth头字段,或者null,如果有不是较少n+1字段。
-
getHeaderField
public String getHeaderField(int n)
- 参数
-
n- 一个索引,其中n>=0 - 结果
-
所述的值
nth头字段或null,如果有少于n+1字段 - 另请参见:
-
getHeaderFieldKey(int)
-
getContent
public Object getContent() throws IOException
检索此URL连接的内容。该方法首先通过调用
getContentType方法来确定对象的内容类型。 如果这是应用程序第一次看到特定内容类型,则会创建该内容类型的内容处理程序。这样做如下:
- 如果应用程序使用
setContentHandlerFactory方法设置了内容处理程序工厂实例,那么createContentHandler内容类型作为参数调用该实例的createContentHandler方法; 结果是该内容类型的内容处理程序。 - 如果还没有设置
ContentHandlerFactory,或者如果工厂的createContentHandler方法返回null,则使用ServiceLoader机制来使用系统类加载器来定位ContentHandlerFactory实现。 工厂所在的订单是具体实施,实施可以自由地缓存位于工厂的工厂。 一个ServiceConfigurationError ,Error或者RuntimeException从抛出createContentHandler,如果遇到,将传播到调用线程。 每个工厂的createContentHandler方法(如果被实例化)都被调用,内容类型,直到工厂返回非空,或者所有工厂都已用尽。 - 否则,此方法尝试加载由
ContentHandler定义的内容处理程序类。 如果类不存在,或者不是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- 如果协议不支持内容类型。 - 从以下版本开始:
- 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字段的默认值。默认是“粘性”,是所有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标志。这个默认值是“粘性”,是所有URLConnections的静态状态的一部分。 此标志适用于下一个,以及创建的所有以下URLConnections。 每个协议可以使用
setDefaultUseCaches(String,boolean)覆盖此默认值- 结果
-
默认值为
useCaches标志为URLConnection。 - 另请参见:
-
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- 如果键为空 - 从以下版本开始:
- 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值是一个不可修改的字符串列表,表示相应的字段值。- 结果
- 该连接的一般请求属性的映射。
- 异常
-
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- 请求已知的关键字(例如,“接受”)。 - 结果
- 指定键的默认请求属性的值。
- 另请参见:
-
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方法的子类使用的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()
-
-