Java URL处理
URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被称为网页地址。表示为互联网上的资源,如网页或者FTP地址。
URL可以分为如下几个部分:
protocol://host:port/path?query#fragment
protocol(协议)可以是HTTP、HTTPS、FTP和File,port为端口号,path为文件路径及文件名。
URL解析:
- 协议(protocol):http
- 主机(host:port):www.baidu.com
- 端口号(port):80,以上URL实例并未并未指定端口,因为HTTP协议默认的端口号为80。
- 文件路径(path):/index.html
- 请求参数(query):language=cn
- 定位位置(fragment):j2se,定位到网页中id属性为j2se的HTML元素的位置。
URL类方法
java.net包中定义了URL类,该类用来处理有关URL的内容。对于URL类的创建和使用,下面分别进行介绍。
java.net.URL提供了丰富的URL构建方式,并可以通过java.net.URL来获取资源。
URL类中包含了很多方法用于访问URL的各个部分,具体方法描述如下:
实例
package pkg2020华南虎; import java.net.*; import java.io.*; /** * * @author yl */ public class URLDemo { public static void main(String[] args) { try { URL url = new URL("https://i-beta.cnblogs.com/posts/edit;postId=12299874"); 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(); } } }
结果:
run: URL为:https://i-beta.cnblogs.com/posts/edit;postId=12299874 协议为:https 验证信息:i-beta.cnblogs.com 文件名及请求参数:/posts/edit;postId=12299874 主机名:i-beta.cnblogs.com 路径:/posts/edit;postId=12299874 端口:-1 默认端口:443 请求参数:null 定位位置:null 成功构建 (总时间: 0 秒)
URLConnections类方法
openConnection()返回一个java.net.URLConnection.
例如:
- 如果你连接HTTP协议的URL,openConnection()方法返回HttpURLConnection对象。
- 如果你连接的URL为一个JAR文件,openConnection()方法将返回JarURLConnection对象。
实例:
package pkg2020华南虎; import java.net.*; import java.io.*; /** * * @author yl */ public class URLConnDemo { public static void main(String[] args) { try { URL url = new URL("http://www.baidu.com"); 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(); } } }
会输出百度首页。
什么他妈的叫他妈的惊喜!