java.lang.Object
java.net.URLStreamHandler
抽象类
URLStreamHandler
是所有流协议处理程序的通用超类。流协议处理程序知道如何为特定协议类型(如http
或https
)建立连接。
在大多数情况下,URLStreamHandler
子类的实例不会直接由应用程序创建。相反,当在构造URL
时首次遇到协议名称时,将自动加载适当的流协议处理程序。
- 自从:
- 1.0
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
提供默认的equals计算。protected int
返回此处理程序解析的URL的默认端口。protected InetAddress
获取我们主机的IP地址。protected int
提供默认的哈希计算。protected boolean
hostsEqual
(URL u1, URL u2) 比较两个URL的主机组件。protected abstract URLConnection
打开到URL
参数引用的对象的连接。protected URLConnection
openConnection
(URL u, Proxy p) 与openConnection(URL)相同,只是连接将通过指定的代理进行;不支持代理的协议处理程序将忽略代理参数并进行正常连接。protected void
将URL
的字符串表示解析为URL
对象。protected boolean
比较两个URL,看它们是否引用相同的文件,即具有相同的协议、主机、端口和路径。protected void
已弃用。使用setURL(URL, String, String, int, String, String, String, String);protected void
setURL
(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref) 将URL
参数的字段设置为指定的值。protected String
将特定协议的URL
转换为String
。
-
Constructor Details
-
URLStreamHandler
public URLStreamHandler()子类调用的构造函数。
-
-
Method Details
-
openConnection
打开到URL
参数引用的对象的连接。此方法应该被子类重写。如果对于处理程序的协议(如HTTP或JAR),存在属于以下包或其子包之一的公共专用URLConnection子类:java.lang、java.io、java.util、java.net,则返回的连接将是该子类的实例。例如,对于HTTP将返回HttpURLConnection,对于JAR将返回JarURLConnection。
- 参数:
-
u
- 连接到的URL。 - 返回:
-
用于
URL
的URLConnection
对象。 - 抛出:
-
IOException
- 如果在打开连接时发生I/O错误。
-
openConnection
与openConnection(URL)相同,只是连接将通过指定的代理进行;不支持代理的协议处理程序将忽略代理参数并进行正常连接。调用此方法将抢占系统的默认
ProxySelector
设置。- 实现要求:
-
此方法的默认实现首先检查给定的
URL
和Proxy
不为null,然后抛出UnsupportedOperationException
。子类应该用适当的实现重写此方法。 - 参数:
-
u
- 连接到的URL。 -
p
- 将通过该代理进行连接。如果需要直接连接,应指定Proxy.NO_PROXY。 - 返回:
-
用于
URL
的URLConnection
对象。 - 抛出:
-
IOException
- 如果在打开连接时发生I/O错误。 -
IllegalArgumentException
- 如果u或p为null,或p的类型错误。 -
UnsupportedOperationException
- 如果实现协议的子类不支持此方法。 - 自从:
- 1.5
-
parseURL
将URL
的字符串表示解析为URL
对象。如果有任何继承的上下文,则已经复制到
URL
参数中。URLStreamHandler
的parseURL
方法将字符串表示解析为http
规范。大多数URL协议族具有类似的解析。具有不同语法的协议的流协议处理程序必须覆盖此例程。- 参数:
-
u
- 接收解析规范结果的URL
。 -
spec
- 表示必须解析的URL的String
。 -
start
- 开始解析的字符索引。这只是指定协议名称的':
'之后(如果有的话)的位置。 -
limit
- 停止解析的字符位置。这是字符串的结尾或"#
"字符的位置(如果存在)。尖号后的所有信息表示锚点。 - 抛出:
-
IllegalArgumentException
- 如果协议处理程序的实现拒绝任何给定参数 -
NullPointerException
- 如果u
为null
,或者如果start < limit
且spec
为null
-
getDefaultPort
protected int getDefaultPort()返回此处理程序解析的URL的默认端口。此方法旨在由具有默认端口号的处理程序重写。- 返回:
-
此处理程序解析的
URL
的默认端口。 - 自从:
- 1.3
-
equals
提供默认的equals计算。可能会被具有不同equals()要求的其他协议的处理程序覆盖。此方法要求其所有参数都不为null。这是因为它只被java.net.URL类调用所保证。- 参数:
-
u1
- 一个URL对象 -
u2
- 一个URL对象 - 返回:
-
如果两个URL被认为相等,则返回
true
,即它们引用同一文件中的相同片段。 - 自从:
- 1.3
-
hashCode
提供默认的哈希计算。可能会被具有不同hashCode计算要求的其他协议的处理程序覆盖。- 参数:
-
u
- 一个URL对象 - 返回:
-
适合哈希表索引的
int
- 自从:
- 1.3
-
sameFile
比较两个URL,看它们是否引用相同的文件,即具有相同的协议、主机、端口和路径。此方法要求其所有参数都不为null。这是因为它只被java.net.URL类间接调用所保证。- 参数:
-
u1
- 一个URL对象 -
u2
- 一个URL对象 - 返回:
- 如果u1和u2引用相同的文件,则返回true
- 自从:
- 1.3
-
getHostAddress
获取我们主机的IP地址。空主机字段或DNS失败将导致返回null。- 参数:
-
u
- 一个URL对象 - 返回:
-
表示主机IP地址的
InetAddress
。 - 自从:
- 1.3
-
hostsEqual
比较两个URL的主机组件。- 参数:
-
u1
- 要比较的第一个主机的URL -
u2
- 要比较的第二个主机的URL - 返回:
-
如果它们相等,则返回
true
,否则返回false
。 - 自从:
- 1.3
-
toExternalForm
将特定协议的URL
转换为String
。- 参数:
-
u
- 该URL。 - 返回:
-
URL
参数的字符串表示。
-
setURL
protected void setURL(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref) 将URL
参数的字段设置为指定的值。只有从URLStreamHandler派生的类才能使用此方法来设置URL字段的值。- 参数:
-
u
- 要修改的URL。 -
protocol
- 协议名称。 -
host
- URL的远程主机值。 -
port
- 远程机器上的端口。 -
authority
- URL的权限部分。 -
userInfo
- URL的userInfo部分。 -
path
- URL的路径组件。 -
query
- URL的查询部分。 -
ref
- 引用。 - 抛出:
-
SecurityException
- 如果URL的协议处理程序与此不同 -
IllegalArgumentException
- 如果协议处理程序的实现拒绝任何给定参数 -
NullPointerException
- 如果u
为null
- 自从:
- 1.3
-
setURL
@Deprecated protected void setURL(URL u, String protocol, String host, int port, String file, String ref) Deprecated.Use setURL(URL, String, String, int, String, String, String, String);将URL
参数的字段设置为指定的值。只有从URLStreamHandler派生的类才能使用此方法来设置URL字段的值。- 参数:
-
u
- 要修改的URL。 -
protocol
- 协议名称。自1.2版本起,此值被忽略。 -
host
- URL的远程主机值。 -
port
- 远程机器上的端口。 -
file
- 文件。 -
ref
- 引用。 - 抛出:
-
SecurityException
- 如果URL的协议处理程序与此不同 -
IllegalArgumentException
- 如果协议处理程序的实现拒绝任何给定参数 -
NullPointerException
- 如果u
为null
-