认识URI、URL、URN

详细请参考:https://blog.51cto.com/xoyabc/1905492

URI:uniform resource Indent 统一资源标识符

URL:uniform resource locator 统一资源定位符

URN:统一资源名称

它们的关系如:

URL

我们学习java网络编程最常用的类就是URL。

一个完整的URL由:protocol、host、port、path、parameter、anchor(锚点)组成

代码测试:

package _20191213;
import java.net.MalformedURLException;
import java.net.URL;
/**
* URL测试类
* @author TEDU
*
*/
public class URLTest {
public static void main(String[] args) throws MalformedURLException {
URL url = new URL("https://www.cnblogs.com/Scorpicat/category/1596649.html");
System.out.println(url.getProtocol());
System.out.println(url.getFile());
System.out.println(url.getAuthority());
System.out.println(url.getDefaultPort());
System.out.println(url.getPort());
System.out.println(url.getQuery());
System.out.println(url.getHost());
System.out.println(url.getRef());
System.out.println(url.getUserInfo());
}
}

  

运行结果:

https
/Scorpicat/category/1596649.html
www.cnblogs.com
443
-1
null
www.cnblogs.com
null
null

通过URL与IO流爬取一张网页的数据

运行后将会生成一个web.txt文件,存储有目标地址的网页数据。

package _20191213;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL; public class DownloadAWebPage {
public static void main(String[] args) throws IOException {
//目标地址
URL url = new URL("https://gy.anjuke.com/?pi=navi-tencent-qq-mz");
//流创建:选择源,选择流,读取,关闭
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("web.txt")));
char[] cbuf = new char[1024*8];
String content;
while((content = br.readLine())!=null) {
System.out.println(content);
bw.write(content);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
}

  

60 网络编程(二)——URL的更多相关文章

  1. Linux网络编程(二)

    Linux网络编程(二) 使用多进程实现服务器并发访问. 采用多进程的方式实现服务器的并发访问的经典范例. 程序实现功能: 1.客户端从标准输入读入一行文字,发送到服务器. 2.服务器接收到客户端发来 ...

  2. C#网络编程二:Socket编程

    一:什么是SOCKET socket的英文原义是"孔"或"插座".作为进程通信机制,取后一种意思.通常也称作"套接字",用于描述IP地址和端 ...

  3. Java网络编程二:Socket详解

    Socket又称套接字,是连接运行在网络上两个程序间的双向通讯的端点. 一.使用Socket进行网络通信的过程 服务端:服务器程序将一个套接字绑定到一个特定的端口,并通过此套接字等待和监听客户端的连接 ...

  4. Linux 网络编程二(Socket创建)

    TCP通信 一个程序使用套接字需要执行4个步骤. --分配套接口和初始化 --连接 --发送或接收数据 --关闭套接字 涉及到的调用包括socket.bind.listen.connect(阻塞线程) ...

  5. IOS研究之网络编程(二)-Cocoa Streams使用具体解释

     本文以及相关的系列文章是我总结的iOS网络开发方面的知识点,本文是第二篇,主要分析了Cocoa Streams中的几个重要类 Cocoa Streams实际上是Objective-C对CFNet ...

  6. Java 网络编程(二)

    以下例开始本文的内容: 例1,需求:上传图片. 客户端: 服务端点. 读取客户端已有的图片数据. 通过socket输出流将数据发给服务端. 读取服务端反馈信息. 关闭. class PicClient ...

  7. Android应用开发-网络编程(二)(重制版)

    Apache HttpClient框架 GET方式请求提交数据 1. 创建一个HttpClient HttpClient hc = new DefaultHttpClient(); 2. 创建一个Ht ...

  8. python 多线程网络编程 ( 二 )

    背景 我在[第一篇文章中]已经介绍了如何实现一个多线程的todo应用,接下来我将会研究如何使这个服务器完成下面这几个功能. 1.使用正则表达式解析用户发送的请求数据: 2.使用ThreadLocal技 ...

  9. java基础:网络编程TCP,URL

    获取域名的两种方法: package com.lanqiao.java.test; import java.net.InetAddress;import java.net.UnknownHostExc ...

随机推荐

  1. http头字段

    HTTP头字段总结 本节摘自https://www.cnblogs.com/skynet/archive/2010/12/11/1903347.html. 1. Accept:告诉WEB服务器自己接受 ...

  2. MYSQL GTID 复制

    MySQL5.7以后都基本用GTID方式复制了,相对于binlog和position号方式,在failover时候减少很多人工切换操作 GTID,global transaction identiti ...

  3. MySQL Install--CentOS 7配置MySQL服务和开启启动

    创建MySQL服务 编辑文件: vim /usr/lib/systemd/system/mysql.service 录入下面内容: PS: 注意修改ExecStart脚本 [Unit]Descript ...

  4. curl-7.21.2

    curl 源码编译 自己定义的库编译 https://blog.csdn.net/initiallht/article/details/92655025 静态库,debug,x86nmake /f M ...

  5. MYSQL免安装操作方法

    http://blog.csdn.net/brokge/article/details/17356765 注意:win 7 win10 下载的权限问题

  6. wordpress调用指定类型post_type的文章

    wordpress很强大,可以添加多种post_type文章类型,假如我们要调用product产品模型的文章要如何操作呢?随ytkah一起来看看吧.我们用'post_type' => 'prod ...

  7. update mantis_bug_table

    update mantis_bug_table set mantis_bug_table.original_due_date=mantis_bug_table.due_date ,) ,);

  8. HTML元素脱离文档流的三种方法

    一.什么是文档流? 将窗体自上而下分成一行一行,并在每行中按从左至右依次排放元素,称为文档流,也称为普通流. 这个应该不难理解,HTML中全部元素都是盒模型,盒模型占用一定的空间,依次排放在HTML中 ...

  9. CUDA10安装配置

    https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_vers ...

  10. Visual Studio调试XSLT

    Visual Studio是一个很大的工具.很容易遗漏一些有用的特性.希望XSLT调试器不会错过.在下面,您可以看到调试器正在运行,因为xslt转换正在应用于某些XML.(请原谅我在示例中使用的毫无意 ...