前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >4.网络编程

4.网络编程

作者头像
六月的雨
发布2022-01-12 15:54:35
3160
发布2022-01-12 15:54:35
举报
文章被收录于专栏:Android开发指南Android开发指南

HTTP网络编程

网络接口文档

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

Http的格式规范

  1. 请求部分

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

代码语言:javascript
复制
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. 响应部分

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

代码语言:javascript
复制
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()方法将排队执行多次。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-02-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HTTP网络编程
    • 网络接口文档
      • Http的格式规范
        • 网络调试工具的使用
          • Http 异步请求的封装
            • http 后台任务
            相关产品与服务
            对象存储
            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档