GET和POST的区别
- GET是从服务器上获得数据,而POST则是向服务器传递数据的
- GET是不安全的,一些操作会被第三方看到,而POST的所有操作多用户来说是不可见的
- GET传输的数据量小,主要是因为它受约于URL长度的限制,而POST可以传输大量的数据,所以在传文件的时候会用POST
- GET限制From表单的数据集的值必须为ASCLL字符,而POST支持整个ISO10646字符集
GET和POST的安全性
关于POST比GET更安全,体现在其数据在地址栏是不可见的角度
但是从传输角度来说,因为HTTP在网络上都是明文传输,所以在传输上它们都很容易被抓包来获取数据报文
想要安全传输需使用HTTPS
GET方法的长度限制
HTTP协议本身没有对URL的长度限制,对URL的限制大多是浏览器和服务器的原因
服务器处理长URL要消耗较多的资源,为了性能和安全(恶意构造长URL进行攻击)考虑,会给URL长度加以限制
HTTP请求限制
创建安全配置文件
- 在res文件夹下创建xml/network_security_config文件
- 增加cleartextTrafficPermitted属性,设为
true
添加安全配置文件
- AndroidManifest.xml中的Application申明
GET实现
请求的URL:http://www.imooc.com/api/teacher?type=3&cid=1
- 实例化一个URL对象
- 获取HttpURLConnection实例
- 设置和请求相关的属性
- 获取响应码
- 判断响应码并获取响应数据(响应正文)
private void get() {
try {
// HttpURLConnection
// 1.实例化一个URL对象
URL url = new URL("http://www.imooc.com/api/teacher?type=3&cid=1");
// 2.获取HttpURLConnection实例
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 3.设置和请求相关的属性
/// 请求方式
conn.setRequestMethod("GET");
/// 请求超时时长
conn.setConnectTimeout(6000);
// 4.获取响应码 200:成功 404&#x