4.网络编程

HTTP网络编程

网络接口文档

用来描述客户端和服务端的数据交互

Http的格式规范

  1. 请求部分

请求消息行:定义请求类型,请求的地址,http的版本号 请求消息头:定义请求的消息头 请求消息内容实体:消息的内容实体

POST http://www.baidu.com/ur/submit/urreward HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Content-Length: 412
Origin: http://www.baidu.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: */*
Referer: http://www.baidu.com/s?wd=http%E5%8D%8F%E8%AE%AE&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_pq=9ee40013000089f5&rsv_t=0ac4SWMebVX5TjRmjHHyNHdDixuCh%2FcpmFz8tPkwfArEbHonfYesWFV64Rr4%2F7VNDDnn&inputT=16437
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: BAIDUID=BECE0B98C5D5A8EA4C5A93221901CC58:FG=1; BAIDUPSID=BECE0B98C5D5A8EA4C5A93221901CC58; BDUSS=l1MmM3MEVEclRYR1RZc1ZJTnBDb2RBUTY1YktTUFc0a2pBYVlHNkxOZDk4N0JVQVFBQUFBJCQAAAAAAAAAAAEAAABoRLMjd2FuZ2Rha2U4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH1miVR9ZolUVm; cflag=65535%3A2; BD_HOME=1; BD_UPN=12314353; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; H_PS_645EC=ed505mET4I1deA3bYtMtRU3uR2cJjax8rhNPHTOm8z3DRr81YiRxdAGu2EkNN9FfIu%2Fm; BD_CK_SAM=1; BDSVRTM=89; H_PS_PSSID=8342_4398_10161_1461_10624_10571_10213_10500_10497_10016_10511_10644_10052_10459_10066_10219_9769_10463_10355_9094_10095_10008_10443_10460_10415_10360_9024_10627

bsToken=b22dd64be5811ede7970782c338fdead&asyn=1&info=pid%3Dse%26method%3Dsearch%26query%3Dhttp%25E5%258D%258F%25E8%25AE%25AE%2Fpid%3Daladdin%26resourceid%3D91%26fetchkey%3Dhttp%2525E5%25258D%25258F%2525E8%2525AE%2525AE%26method%3Dsearch%26query%3Dhttp%25E5%258D%258F%25E8%25AE%25AE%2Fpid%3Daladdin%26resourceid%3D1527%26fetchkey%3D%26method%3Dsearch%26query%3Dhttp%25E5%258D%258F%25E8%25AE%25AE&se=utf-8&ge=utf-8
  1. 响应部分

响应状态行:定义响应的状态码 响应内容头:定义响应的消息头 响应内容实体:响应的内容实体

HTTP/1.1 200 OK
Cache-Control: private
Date: Sun, 14 Dec 2014 14:41:34 GMT
Expires: Sun, 14 Dec 2014 14:41:34 GMT
Content-type: text/html
Vary: Accept-Encoding
Content-Encoding: gzip
Transfer-Encoding: chunked
Server: BWS/1.0
Connection: Keep-Alive

网络调试工具的使用

  1. 工具介绍: Fiddler2 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式.
  2. 模拟请求发送
    1. 找到软件右侧的Composer选项卡,选中
    2. 选中请求方式 (GET,POST)
    3. 填写请求URL
    4. 如果是post请求,在Request body中添加请求参数,并且添加请求头Content-Type: application/x-www-form-urlencoded
    5. 如果是get请求,在URL中添加参数
    6. 点击Excute执行请求
  3. 查看网络数据返回
    1. 选中左侧发送的请求
    2. 选中右侧的Inspectors选项卡
    3. 查看下侧的Raw选项卡,查看返回结果

Http 异步请求的封装

  1. 什么场景用异步任务 处理耗时操作的时候用到异步任务,否则andorid 会抛出ANR(application not response)错误
  2. 为什么要用到回调 在处理异步任务的时候,结果由子线程获得,此时需要将结果给到主线程。因此在主线程中调用异步任务时需要设置回调
  3. 开发过程中UI控制层访问网络最关心的是什么 UI控制层访问网络的目的是为了获得网络返回数据,UI层最关心返回的数据结果;在java开发中,一切皆有面向对象的思想,数据即是对象,UI层拿到Object最为合适。
  4. 如何为UI控制层封装好网络请求 异步 + 回调 + 接口文档规范

http 后台任务

后台任务是处理 及时性不高的任务,不需要耗用太多资源去做网络请求,UI也不是很关心数据返回

  1. 通常应用程序只会给到一个线程去处理所有的后台任务
  2. 后台任务需要按照一定的格式归档存储
  3. 通过IntentService的方式运行后台任务
  4. IntentService IntentService是Service类的子类,用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。
    1. 必须实现一个无参数构造函数
    2. onHandleIntent()运行在子线程中
    3. 如果IntentService 被start了多次,onHandleIntent()方法将排队执行多次。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux、Python学习

Linux基础教程之linux文件权限深度解读

基本命令—— 1.cut : cat /etc/passwd | cut -d’:’ -f7| uniq -c| sort -nr

9700
来自专栏依乐祝

asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程

最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下...

12310
来自专栏Ryan Miao

Javascript跨域后台设置拦截

子域名之间互相访问需要跨域 结论放在开头: 服务端必须设置允许跨域 客户端带cookie需要设置withCredentials 无论服务端是否允许跨域,该req...

28180
来自专栏Jed的技术阶梯

Linux集群系统时间同步

要做到服务器集群的时间同步,集群中各台机器的时区必须相同的,我们在国内就使用中国时区,如果你的机器的时区不是"Asia/Shanghai",需要修改时区

1.6K40
来自专栏码匠的流水账

修复zuul跨域配置异常

多次请求的时候,会把这些header再带过来,然后请求zuul转发的接口又在写入一次,造成重复了,方案就是zuul转发的时候,过滤掉这些header,比如

16820
来自专栏流柯技术学院

android自动化之monkeyrunner

运行monkeyrunner之前必须先运行相应的模拟器或连上设备,不然monkeyrunner无法连接设备。

16020
来自专栏分布式系统进阶

Kafka重置消费的OffsetKafka源码分析-汇总

54920
来自专栏Java帮帮-微信公众号-技术文章全总结

Web-第七天 HTTP&Tomcat学习

HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。用于定义WEB浏览器与WE...

19750
来自专栏技术博客

MVC项目开发中那些用到的知识点(js css优化-- 合并和压缩)

在项目框架中,首先要引用很多css和js文件,80%的用户响应时间都是浪费在前端。而这些时间主要又是因为下载图片、样式表、JavaScript脚本、flash等...

22920
来自专栏云计算教程系列

使用CVM搭建FileRun私人网盘

FileRun是由PHP编写的文件管理器和文件共享程序,可帮助您访问,整理,查看和编辑文件。您可以将其与Office文档,照片,音乐等文件一起使用。在本教程中,...

472110

扫码关注云+社区

领取腾讯云代金券