Java URL 处理
URL 代表统一资源定位符,表示互联网上的资源,例如网页或 FTP 目录。
本节将向您展示如何编写与 URL 进行通信的 Java 程序。URL 可以被拆分为以下部分 –
协议的示例包括HTTP,HTTPS,FTP和文件。路径也被称为文件名,主机也被称为权限。
以下是一个使用HTTP协议的网页的URL –
注意,此URL未指定端口,因此将使用协议的默认端口。对于HTTP协议,默认端口是80。
构造函数
java.net.URL 类表示URL并具有一套完整的用于在Java中操作URL的方法。
URL类有多个构造函数用于创建URL,包括以下几种:
序号 | 构造器和描述 |
---|---|
1 | public URL(String protocol, String host, int port, String file) throws MalformedURLException 通过组合给定的部分创建URL。 |
2 | public URL(String protocol, String host, String file) throws MalformedURLException 与前一个构造函数相同,只是使用给定协议的默认端口。 |
3 | public URL(String url) throws MalformedURLException 从给定的字符串创建URL。 |
4 | public URL(URL context, String url) throws MalformedURLException 通过解析URL和字符串参数创建URL。 |
URL类包含许多方法,用于访问表示的URL的各个部分。 URL类中的一些方法包括以下内容 –
编号 | 方法和描述 |
---|---|
1 | public String getPath() 返回URL的路径。 |
2 | public String getQuery() 返回URL的查询部分。 |
3 | public String getAuthority() 返回URL的授权信息。 |
4 | public int getPort() 返回URL的端口号。 |
5 | public int getDefaultPort() 返回URL协议的默认端口号。 |
6 | public String getProtocol() 返回URL的协议。 |
7 | public String getHost() 返回URL的主机名。 |
8 | public String getHost() 返回URL的主机名。 |
9 | public String getFile() 返回URL的文件名。 |
10 | public String getRef() 返回URL的引用部分。 |
11 | public URLConnection openConnection() throws IOException 打开到URL的连接,允许客户端与资源进行通信。 |
示例
下面的URLDemo程序演示了一个URL的各个部分。在命令行上输入一个URL,URLDemo程序会输出给定URL的每个部分。
这个程序的一个示例运行将产生以下结果 –
输出
URLConnections 类方法
openConnection() 方法返回一个 java.net.URLConnection 对象,这是一个抽象类,其子类代表不同类型的URL连接。
例如 –
- 如果连接的URL协议是HTTP,则openConnection()方法返回一个HttpURLConnection对象。
-
如果连接的URL表示一个JAR文件,则openConnection()方法返回一个JarURLConnection对象,等等。
URLConnection 类有许多用于设置或确定连接信息的方法,包括以下内容 –
序号 | 方法和描述 |
---|---|
1 | Object getContent() 检索此URL连接的内容。 |
2 | Object getContent(Class[] classes) 检索此URL连接的内容。 |
3 | String getContentEncoding() 返回内容编码头字段的值。 |
4 | int getContentLength() 返回内容长度头字段的值。 |
5 | String getContentType() 返回内容类型头字段的值。 |
6 | int getLastModified() 返回最后修改日期头字段的值。 |
7 | long getExpiration() 返回过期日期头字段的值。 |
8 | long getIfModifiedSince() 返回此对象的ifModifiedSince字段的值。 |
9 | public void setDoInput(boolean input) 设置为true,表示连接将用于输入。默认值为true,因为客户端通常从URLConnection读取。 |
10 | public void setDoOutput(boolean output) 设置为true,表示连接将用于输出。默认值为false,因为许多类型的URL不支持写入。 |
11 | public InputStream getInputStream() throws IOException 返回用于从资源读取的URL连接的输入流。 |
12 | public OutputStream getOutputStream() throws IOException 返回用于写入资源的URL连接的输出流。 |
13 | public URL getURL() 返回此URLConnection对象连接的URL。 |
示例
下面的URLConnectionDemo程序连接到从命令行输入的URL。
如果URL表示一个HTTP资源,则将连接转换为HttpURLConnection,并逐行读取资源中的数据。
该程序的一个示例运行将产生以下结果 –