网络协议基础之URL

URL组成部分及创建:
  1. 协议 + 存放资源主机位置+端口 +资源文件名(相对主机相对路径)
  2. 创建
    1. 绝对路径创建:URL(String spec)
    2. 相对路径创建:相对路径构建,URL(URL context, spec)
      import java.net.MalformedURLException;
      import java.net.URL;
      
      /**
       * 协议 存放资源主机名 端口 资源文件名(/之后的,的相对路径相对主机)
       * URL创建:
       * 一:绝对路径构建,URL(String spec)
       * 二:相对路径构建,URL(URL context, spec)
       * 
       * @author Administrator
       */
      public class url {
      	public static void main(String[] args) throws MalformedURLException {
      		// 绝对路径构建
      		URL url = new URL("http://baidu.com:80/index.html#aa?name=te");
      		System.out.println("协议" + url.getProtocol());
      		System.out.println("域名" + url.getHost());
      		System.out.println("端口" + url.getPort());
      		System.out.println("资源" + url.getFile());
      		System.out.println("相对路径" + url.getPath());
      		// 锚点和参数冲突只能获取一个
      		System.out.println("锚点" + url.getRef());
      		System.out.println("参数" + url.getQuery());
      		// 相对路径构建
      		url = new URL("http://baidu.com:80/a/");
      		url = new URL(url, "b.txt");
      		System.out.println(url.toString());
      	}
      }
      
      利用URL获取网络资源
      package cn.woniux.url;
      
      import java.io.BufferedReader;
      import java.io.BufferedWriter;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.InputStreamReader;
      import java.io.OutputStreamWriter;
      import java.net.URL;
      
      /**
       * URL获取网页源代码 openStream
       * 
       * @author Administrator
       *
       */
      public class UrlGetSource {
      	public static void main(String[] args) throws IOException {
      		URL url = new URL("http://www.baidu.com");
      		//获取网络资源
      		InputStream input = url.openStream();
      		//数据输入流,将网络获取的字节流,解析为字符流,已缓冲流输入
      		BufferedReader br = new BufferedReader(new InputStreamReader(input, "utf-8"));	
      		//数据输出流,读取输入流的字符流,利用文本流输入到指定的文本中
      		BufferedWriter bw = new BufferedWriter(
      				new OutputStreamWriter(new FileOutputStream("baidu.html"), "utf-8"));
      		String msg = null;
      		/*将输入流数据放入输出流中*/
      		while ((msg = br.readLine()) != null) {
      			bw.append(msg);
      			bw.newLine();
      		}
      		/*关闭资源*/
      		bw.flush();
      		bw.close();
      		br.close();
      
      	}
      }
      

猜你喜欢

转载自blog.csdn.net/coco_love24/article/details/80950083