Android网络编程

网络的基本知识

- IP地址和端口号
  • IP地址:网络中每台计算机都必须有唯一一个IP地址做标识,用一组由“.”分隔的十进制数组成
  • 端口号:具有网络功能的应用软件的标识号

网络协议

OSI七层模型TCP/IP概念层模型功能TCP/IP协议族
应用层应用层文件传输,电子邮件,文件服务,虚拟终端TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层数据格式化,代码转换,数据加密没有协议
会话层解除或建立与别的接点的联系没有协议
传输层传输层提供端到端的接口TCP,UDP
网络层网络层为数据包选择路由IP,ICMP,RIP,OSPF,BGP,ICMP
数据链路层传输有地址的帧以及错误检测功能SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层链路层以二进制数据形式在物理媒体上传输数据IS02110,IEEE802,IEEE802.2

HTTP协议

属于应用层的面向对象的协议,适用于分布式超媒体信息系统

主要特点

  • 支持C/S模式
  • 简单快速:只需传送请求方法和路径
  • 灵活:允许传输任意类型的数据对象
  • 无连接:限制每次连接只处理一个请求
  • 无状态:对事物处理没有记忆功能

HTTP请求报文

由请求行、请求报头、空行和请求数据4个部分组成

HTTP响应报文

由状态行、消息报头、空行、响应正文组成

常见的状态码

  • 200 OK:客户端请求成功
  • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
  • 401 Unauthorized:请求未经授权,这个状态代码必须和www-Authenticate报头域一起使用
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务
  • 404 Not Found:服务器无法根据客户端的请求找到资源
  • 500 Internal Server Error:服务器发生不可预估的错误
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

Android的网络编程

Http通信方式
  • HttpURLConnection
  • HttpClient
Socket通信方式

Android URL通信

Android HTTP URL接口的基本操作包括:

  • 创建URL以及HttpURLConnection对象
  • 连接参数设置
  • 连接到服务器
  • 向服务器写数据
  • 从服务器读取数据

Android URL通信

HttpURLConnection访问HTTP资源的步骤:

  • 根据URL地址创建URL对象
  • 使用URL对象的openConnection()方法获取HttpURLConnection对象
  • 设置连接的属性,包括GET/POST请求方式
  • 输入、输出数据
  • 关闭输入、输出流
  • 在AndroidManifest配置文件中设置访问INTERNET的权限

GET方式:

private void get(String url){
//构造Request
Request request = new Request.Builder().url(url)
.header(“User-Agent”, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 " +
“(KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36”)
.addHeader(“Accept”,“application/json”)
.get()
.method(“GET”,null)
.build();
//发送请求,并处理回调
OkHttpClient client = HttpsUtil.handleSSLHandshakeByOkHttp();

POST方式:

private void post(String url,Map<String,String> params){
RequestBody body = setRequestBody(params);
//构造Request
Request request = new Request.Builder().url(url).post(body)
.header(“User-Agent”, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 " +
“(KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36”)
.addHeader(“Accept”,“application/json”)
.build();
//发送请求,并处理回调
OkHttpClient client = HttpsUtil.handleSSLHandshakeByOkHttp();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值