- java.lang.Object
-
- java.net.URLStreamHandler
-
public abstract class URLStreamHandler extends Object
抽象类URLStreamHandler是所有流协议处理程序的通用超类。 流协议处理程序知道如何为特定协议类型建立连接,例如http或https。在大多数情况下,
URLStreamHandler子类的实例不是由应用程序直接创建的。 而是在构造URL时第一次遇到协议名称时,会自动加载相应的流协议处理程序。- 从以下版本开始:
- 1.0
- 另请参见:
-
URL(java.lang.String, java.lang.String, int, java.lang.String)
-
-
构造方法摘要
构造方法 构造器 描述 URLStreamHandler()
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 弃用的方法 变量和类型 方法 描述 protected booleanequals(URL u1, URL u2)提供默认的等于计算。protected intgetDefaultPort()返回此处理程序解析的URL的默认端口。protected InetAddressgetHostAddress(URL u)获取我们主机的IP地址。protected inthashCode(URL u)提供默认哈希计算。protected booleanhostsEqual(URL u1, URL u2)比较两个URL的主机组件。protected abstract URLConnectionopenConnection(URL u)打开与URL参数引用的对象的连接。protected URLConnectionopenConnection(URL u, Proxy p)与openConnection(URL)相同,但连接将通过指定的代理进行; 不支持代理的协议处理程序将忽略代理参数并进行正常连接。protected voidparseURL(URL u, String spec, int start, int limit)将URL的字符串表示形式解析为URL对象。protected booleansameFile(URL u1, URL u2)比较两个url以查看它们是否引用相同的文件,即具有相同的协议,主机,端口和路径。protected voidsetURL(URL u, String protocol, String host, int port, String file, String ref)已过时。使用setURL(URL,String,String,int,String,String,String,String);protected voidsetURL(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref)将URL参数的字段设置为指示的值。protected StringtoExternalForm(URL u)一个转换URL特定协议到的String。
-
-
-
方法详细信息
-
openConnection
protected abstract URLConnection openConnection(URL u) throws IOException
打开与URL参数引用的对象的连接。 应该由子类重写此方法。如果对于处理程序的协议(例如HTTP或JAR),存在属于以下某个包或其子包之一的公共专用URLConnection子类:java.lang,java.io,java.util,java.net,返回的连接将是该子类。 例如,对于HTTP,将返回HttpURLConnection,对于JAR,将返回JarURLConnection。
- 参数
-
u- 此连接的URL。 - 结果
-
一个
URLConnection对象为URL。 - 异常
-
IOException- 如果在打开连接时发生I / O错误。
-
openConnection
protected URLConnection openConnection(URL u, Proxy p) throws IOException
- 参数
-
u- 此连接的URL。 -
p- 将通过其进行连接的代理。 如果需要直接连接,则应指定Proxy.NO_PROXY。 - 结果
-
一个
URLConnection对象为URL。 - 异常
-
IOException- 如果在打开连接时发生I / O错误。 -
IllegalArgumentException- 如果u或p为null,或者p的类型错误。 -
UnsupportedOperationException- 如果实现协议的子类不支持此方法。 - 从以下版本开始:
- 1.5
-
parseURL
protected void parseURL(URL u, String spec, int start, int limit)
将URL的字符串表示解析为URL对象。如果有任何继承的上下文,则它已被复制到
URL参数中。该
parseURL的方法URLStreamHandler解析字符串表示,好像它是一个http规范。 大多数URL协议系列都有类似的解析。 具有不同语法的协议的流协议处理程序必须覆盖此例程。- 参数
-
u-URL接收解析规范的结果。 -
spec- 表示必须解析的URL的String。 -
start- 开始解析的字符索引。 这刚好超过了':'(如果有的话),它指定了协议名称的确定。 -
limit- 停止解析的字符位置。 这是字符串的结尾或“#”字符的位置(如果存在)。 尖锐符号后的所有信息表示锚点。
-
getDefaultPort
protected int getDefaultPort()
返回此处理程序解析的URL的默认端口。 具有默认端口号的处理程序将覆盖此方法。- 结果
-
此处理程序解析的
URL的默认端口。 - 从以下版本开始:
- 1.3
-
equals
protected boolean equals(URL u1, URL u2)
提供默认的等于计算。 处理程序可能会覆盖对equals()有不同要求的其他协议。 此方法要求其参数均不为null。 这是由它只由java.net.URL类调用的事实所保证的。- 参数
-
u1- URL对象 -
u2- URL对象 - 结果
-
true如果两个网址被认为是相等的,即。 它们引用同一文件中的相同片段。 - 从以下版本开始:
- 1.3
-
hashCode
protected int hashCode(URL u)
提供默认哈希计算。 处理程序可能会覆盖对hashCode计算有不同要求的其他协议。- 参数
-
u- URL对象 - 结果
-
int适合哈希表索引 - 从以下版本开始:
- 1.3
-
sameFile
protected boolean sameFile(URL u1, URL u2)
比较两个url以查看它们是否引用相同的文件,即具有相同的协议,主机,端口和路径。 此方法要求其参数均不为null。 这是由java.net.URL类间接调用它保证的。- 参数
-
u1- URL对象 -
u2- URL对象 - 结果
- 如果u1和u2引用同一文件,则为true
- 从以下版本开始:
- 1.3
-
getHostAddress
protected InetAddress getHostAddress(URL u)
获取我们主机的IP地址。 空主机字段或DNS故障将导致空返回。- 参数
-
u- URL对象 - 结果
-
InetAddress表示主机IP地址。 - 从以下版本开始:
- 1.3
-
hostsEqual
protected boolean hostsEqual(URL u1, URL u2)
比较两个URL的主机组件。- 参数
-
u1- 要比较的第一个主机的URL -
u2- 要比较的第二个主机的URL - 结果
-
true当且仅当它们相等时,否则为false。 - 从以下版本开始:
- 1.3
-
toExternalForm
protected String toExternalForm(URL u)
一个转换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的协议处理程序与此不同 - 从以下版本开始:
- 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的协议处理程序与此协议处理程序不同
-
-