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();
        }
    }
}

会输出百度首页。


猜你喜欢

转载自www.cnblogs.com/2020yl/p/12299874.html