android6.23Http协议
2016-06-23 09:07
471 查看
http
安卓
HttpClient的使用过程已经废弃我会在之后的里面介绍OkHttpCilent
过程详解
Http请求种类
post提交数据的步骤
协议:是一种浏览器和服务器的协议,一种通信标准
通用:范围广
无状态:无请求时连接中断
超文本协议:可以是音频视频各种形式
2.生成代表请求的HttpGet对象
3.发送请求,获得服务器返回的HttpResponse对象
4.检查响应状态是否正常
5.获取响应对象当中的数据
注意:主线程不能访问网络
已经废弃
请求头:消息的基础属性:来源,目的,特点
Host:marschen.com 本次请求访问主机地址
Cache-control:no-cache 设置网页缓存的使用方法
Pragma:no_cache 有关缓存
Accept:text/html,xxxxx… 浏览器可以接受的数据类型
User-Agent:Mozilla/5.0xxx 主要表示客户端类型
Accept-Encoding :gzip,deflate,sdcn 浏览器能够解码的数据编码方式,服务器可能会压缩数据进行返回
Accept-Language:zh-CN,zh;q=0.8 浏览器期望接受的语言种类
请求体:请求的内容
响应内容分析
响应头:
Content-encoding 返回数据的压缩格式
Content-Length 返回数据量的大小
Content-Type 返回数据的类型
Last-Modified 资源最后修改的时间
Date 返回数据的时间
Server 服务器类型
响应体:响应的内容
请求头与响应头的读取
请求头的读取
响应头的读取
post():向服务器提交新的内容
其他的方法逐渐不用了:
put:修改某个内容
delete:用于删除某个内容
区别:
get方法用于从服务器取回数据,post用于向服务器提交数据
get通常提交的数据量不超过2k,post提交的数据量没有限制
get请求是将所有要提交的数据附在URL之后,而Post请求是将提交的数据放置在请求的请求体当中。
样例:http://192.168.1.100:8081/s02e14.jsp?name=zhangsan&pwd=123456
?后为请求体
将需要传递给服务器端的数据放置在键值对对象当中;
将准备好的键值对放置在List中
生成代表请求体的对象
将存有请求键值对的List对象放置在请求体对象当中
将请求体对象放置到请求对象当中
发送请求对象
安卓
HttpClient的使用过程已经废弃我会在之后的里面介绍OkHttpCilent
过程详解
Http请求种类
post提交数据的步骤
http
请求和相应的通用的超文本协议协议:是一种浏览器和服务器的协议,一种通信标准
通用:范围广
无状态:无请求时连接中断
超文本协议:可以是音频视频各种形式
安卓
安卓程序作为用户和服务器中介承担接受用户操作和请求服务器以及接受服务器响应和向用户做出反馈的作用。HttpClient的使用过程(已经废弃我会在之后的里面介绍OkHttpCilent)
1.生成代表客户端的HttpClient对象2.生成代表请求的HttpGet对象
3.发送请求,获得服务器返回的HttpResponse对象
4.检查响应状态是否正常
5.获取响应对象当中的数据
注意:主线程不能访问网络
已经废弃
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //在主线程中不可以访问网络需要新建线程 NetWorkThread t = new NetWorkThread(); t.start(); } }); } class NetWorkThread extends Thread { @Override public void run() { //创建HttpClient对象 HttpClient httpClient = new DefaultHttpClient(); //创建代表请求对象,参数为访问的服务器地址 HttpGet get = new HttpGet("http://www.marschen.com/data1.html"); //执行请求,获取服务器返回的对象,服务器返回代码200正常,404客户端错误, //505服务器错误 try { HttpResponse response = httpClient.execute(get); int code = response.getStatusLine().getStatusCode(); if(code == 200) { //从响应对象取出数据需要entity HttpEntity entity = response.getEntity(); //以输入流的形式获得数据 InputStream in = entity.getContent(); //处理流数据 BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line = reader.readLine(); Log.d("client", line); } } catch (IOException e) { e.printStackTrace(); } } } }
过程详解
Http请求内容分析请求头:消息的基础属性:来源,目的,特点
Host:marschen.com 本次请求访问主机地址
Cache-control:no-cache 设置网页缓存的使用方法
Pragma:no_cache 有关缓存
Accept:text/html,xxxxx… 浏览器可以接受的数据类型
User-Agent:Mozilla/5.0xxx 主要表示客户端类型
Accept-Encoding :gzip,deflate,sdcn 浏览器能够解码的数据编码方式,服务器可能会压缩数据进行返回
Accept-Language:zh-CN,zh;q=0.8 浏览器期望接受的语言种类
请求体:请求的内容
响应内容分析
响应头:
Content-encoding 返回数据的压缩格式
Content-Length 返回数据量的大小
Content-Type 返回数据的类型
Last-Modified 资源最后修改的时间
Date 返回数据的时间
Server 服务器类型
响应体:响应的内容
请求头与响应头的读取
请求头的读取
//获取请求头的内容,请求头内容全部存储在键值对中 Header[] reqHeader = get.getAllHeaders(); for(Header header : reqHeader) { String key = header.getName(); String value = header.getValue(); Log.d("client","request header name is :" + key + ",and request value is :" + value); }
响应头的读取
//获取响应头的内容,都是以键值对存储 Header[] respHeader = response.getAllHeaders(); for(Header header:respHeader) { String key = header.getName(); String value = header.getValue(); Log.d("client", "response header name is :" + key + ", and response value is :" + value); }
Http请求种类
get():用于请求URI得到资源post():向服务器提交新的内容
其他的方法逐渐不用了:
put:修改某个内容
delete:用于删除某个内容
区别:
get方法用于从服务器取回数据,post用于向服务器提交数据
get通常提交的数据量不超过2k,post提交的数据量没有限制
get请求是将所有要提交的数据附在URL之后,而Post请求是将提交的数据放置在请求的请求体当中。
样例:http://192.168.1.100:8081/s02e14.jsp?name=zhangsan&pwd=123456
?后为请求体
post提交数据的步骤
构造请求对象将需要传递给服务器端的数据放置在键值对对象当中;
将准备好的键值对放置在List中
生成代表请求体的对象
将存有请求键值对的List对象放置在请求体对象当中
将请求体对象放置到请求对象当中
发送请求对象
相关文章推荐
- ftpClient ,httpClient
- httpServer端接受post请求数据并使用3DES+base64加解密
- http通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤
- linux网络编程----->高并发--->poll多路I/O转接服务器
- http请求数据的格式
- 网络时代教你外贸电子商务网站在海外推广的五大方法
- Java基础--Socket网络编程
- 检测Gps和网络定位权限
- 基于weka实现的神经网络算法实现
- 70行代码实现的神经网络算法
- 保障网络安全,iOS应用年底前必须启用ATS安全功能
- HTTP协议
- linux 的网络设置
- linux 的网络设置
- 使用Http协议访问网络--HttpURLConnection
- TCP/UDP Socket编程步骤
- 网络状态检查
- Android(四)----网络编程
- HTTP 随笔
- 分析http应用层