URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址。表示为互联网上的资源,如网页或者 FTP 地址。
本章节我们将介绍 Java 是如何处理 URL 的。URL 可以分为如下几个部分。
protocol://host:port/path?query#fragment
protocol(协议)可以是 HTTP、HTTPS、FTP 和 File,port 为端口号,path为文件路径及文件名。
HTTP 协议的 URL 示例如下:
/index.html?language=cn#j2se
URL 解析:
在java.net包中定义了URL类,该类用来处理有关URL的内容。对于URL类的创建和使用,下面分别进行介绍。
java.net.URL提供了丰富的URL构建方式,并可以通过java.net.URL来获取资源。
URL类中包含了很多方法用于访问URL的各个部分,具体方法及描述如下:
以上示例演示了使用java.net的URL类获取URL的各个部分参数:
import java.net.*; import java.io.*; public class URLDemo { public static void main(String [] args) { try { URL url = new URL("/index.html?language=cn#j2se"); System.out.println("URL 为:" + url.toString()); System.out.println("协议为:" + url.getProtocol()); System.out.println("验证信息:" + url.getAuthority()); System.out.println("文件名及请求参数:" + url.getFile()); System.out.println("主机名:" + url.getHost()); System.out.println("路径:" + url.getPath()); System.out.println("端口:" + url.getPort()); System.out.println("默认端口:" + url.getDefaultPort()); System.out.println("请求参数:" + url.getQuery()); System.out.println("定位位置:" + url.getRef()); }catch(IOException e) { e.printStackTrace(); } } }
以上示例编译运行结果如下:
URL 为:/index.html?language=cn#j2se 协议为:http 验证信息:www.cainiaoplus.com 文件名及请求参数:/index.html?language=cn 主机名:www.cainiaoplus.com 路径:/index.html 端口:-1 默认端口:80 请求参数:language=cn 定位位置:j2se
openConnection() 返回一个 java.net.URLConnection。
例如:
URLConnection 方法列表如下:
以下示例中URL采用了HTTP 协议。 openConnection 返回HttpURLConnection对象。
import java.net.*; import java.io.*; public class URLConnDemo { public static void main(String [] args) { try { URL url = new URL(""); URLConnection urlConnection = url.openConnection(); HttpURLConnection connection = null; if(urlConnection instanceof HttpURLConnection) { connection = (HttpURLConnection) urlConnection; } else { System.out.println("请输入 URL 地址"); return; } BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream())); String urlString = ""; String current; while((current = in.readLine()) != null) { urlString += current; } System.out.println(urlString); }catch(IOException e) { e.printStackTrace(); } } }
以上示例编译运行结果如下:
$ javac URLConnDemo.java $ java URLConnDemo .....这里会输出菜鸟教程首页()的 HTML 内容.....
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/6605.html