外观
Http
Http
URL(统一资源定位器)
1.URL
代表一个统一资源定位符
URI = Universal Resource Identifier 统一资源标志符 URL = Universal Resource Locator 统一资源定位符 URN = Universal Resource Name 统一资源名称
2.URI是抽象的定义,不管用什么方法表示,只要能定位一个资源,就叫URI,本来设想的的使用两种方法定位:1,URL,用地址定位;2,URN 用名称定位。
举个例子:去村子找个具体的人(URI),如果用地址:某村多少号房子第几间房的主人 就是URL, 如果用身份证号+名字 去找就是URN了。
结果就是 目前WEB上就URL流行开了,平常见得URI 基本都是URL。
URLConnection
URLEncode
URLDecode
(基于http协议表单get与post的区别)get与Post的区别?
安全性不同 get不够安全,提交的参数 会明文显示在地址栏和浏览历史中
提交的机制不同 get像外卖,post像快递,post会给你发个有数据到达的通知,让你获取数据。get的效率高一些。
传输的数据量不一样。get理论上2k,post理论无限制,取决于服务端的软件。
get的请求是幂等的,post不是。
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
URL类的使用
// 定义一个url
URL url = new URL(String urlstr);
// 建立HTTP通信
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置连接方式:get
connection.setRequestMethod("GET");
// 设置连接主机服务器的超时时间:15000毫秒
connection.setConnectTimeout(5000);
// 设置读取远程返回的数据时间:60000毫秒
connection.setReadTimeout(6000);
// 发送请求
connection.connect();
// 通过connection连接,获取输入流
if (connection.getResponseCode() == 200) {
inputStream = connection.getInputStream();
// 封装输入流,并指定字符集
bufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
// 存放数据
StringBuilder sbf = new StringBuilder();
String temp;
while ((temp = bufferedReader.readLine()) != null) {
sbf.append(temp);
sbf.append(System.getProperty("line.separator"));
}
result = sbf.toString();
}
} catch (IOException e) {
e.printStackTrace();
}
第三方工具:
HttpClient
OkHTTP
Jsoup java爬虫工具