最近一段时间在学习Android网络方面的东西,对网络请求基础做一个总结。一个完整的http请求需要经历两个过程:客户端发送请求到服务器,然后服务器将结果返回给客户端。现在我们这里主要是客户端想服务器请求这一部分进行总结。
Get方式 在url中填写参数: http://xxxx.xx.com/xx.php?params1=value1¶ms2=value2
Post方式 参数是经过编码放在请求体中的。编码包括x-www-form-urlencoded 与 form-data。 x-www-form-urlencoded的编码方式是这样:
tel=13637829200&password=123456 form-data的编码方式是这样: ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="tel" 13637829200 ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="password" 123456 ----WebKitFormBoundary7MA4YWxkTrZu0gWurl是存在于请求行中的。 所以Get与Post区别本质就是参数是放在请求行中还是放在请求体中 GET: GET请求可以被缓存。 URL可以追加键值对,但是有长度限制。 可以截获URL,获取其中的键值对,不适合做增删改操作,可以用来作为查询操作。 POST: POST请求从不会被缓存。 敏感信息可以用该方法。 适合做增删改操作 理论上没有长度限制。 代码部分参考:http://blog.csdn.net/iispring/article/details/51474529
上面只是简单的方法调用,网络请求我们还需要去考虑其他的因素: - 没有异常处理机制 - 没有缓存机制 (减少请求次数,减小服务器压力,在无网络的情况下提 供数据) - 缺乏完善的API(请求头,参数,编码,拦截器等)调试模式 - 没有HTTPS(HTTPS相当于HTTP的安全版本,我们为什么需要:认证用户和服务器,确保数据发送到正确的客户机和服务器;(验证证书) 加密数据以防止数据中途被窃取;(加密) 维护数据的完整性,确保数据在传输过程中不被改变。(摘要算法)) HTTPS可参考:http://blog.csdn.net/lmj623565791/article/details/48129405
接下来,具体去分析常用的网络框架:okhttp、volley等。http://www.jianshu.com/p/3141d4e46240’ http://blog.csdn.net/lmj623565791/article/details/48129405 http://blog.csdn.net/iispring/article/details/51474529