生成文章|

GET and POST

2017-11-28 11:15:34
470
请求数据包的格式:
1>请求行
GET /android_jsp/findFlights.jsp HTTP/1.1
GET:请求方式 (POST)
/android_jsp/findFlights.jsp: 请求资源路径
HTTP/1.1: 协议的类型与版本

2>若干消息头 Header
key:value
key:value
key:value
用于告诉服务端 客户端的状态及客户端传递数据
的状态信息。

3>请求实体
主要用于在POST请求下存放请求参数数据。
name=zs&pwd=12345



响应数据包的格式:
1>状态行
HTTP/1.1 200 OK
HTTP/1.1: 协议的类型与版本
200: 状态码
OK: 状态描述

2>若干消息头
key:value
key:value
key:value
通过这些消息头告诉客户端服务端的状态及服务端
传递参数的状态信息。

3>响应实体
用于存储具体的响应数据。



GET/POST两种请求方式的区别:
1>请求参数的存放位置
GET: 请求资源路径后用?拼接
POST: 请求数据包的请求实体中
2>是否适合传递中文
GET: 不适合
POST: 适合
3>是否适合大数据量提交
GET: 不适合
POST:适合
4>安全性
GET: 相对不安全
POST: 相对安全



如何使用Android代码发送HTTP GET请求?
1>创建URL对象:
URL url = new URL("http://ip:port/app/path");
2>通过URL对象获取HttpUrlConnection:
HttpUrlConnection conn=(强转)url.openConnection();
3>发送请求并且获取响应输入流:
is=conn.getInputStream(); (网络操作,耗时)
4>is就是服务端返回的响应实体数据.
把输入流中的数据读取出来,获取响应字符串。
5>解析响应字符串。


如何使用Android代码发送HTTP POST请求?
1>创建URL对象
URL url = new URL("http://xxxxx");
2>创建HttpURLConnection对象
conn = url.openConnection();
3>设置请求方式与消息头 (Content-Type)
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
(multipart/form-data)
4>设置开启输出流
使用输出流输出请求参数
conn.setDoOutput(true);
os = conn.getOutputStream();
os.write("date=2016&numer=No.1111".getBytes());
os.flush()
5>调用conn.getInputStream()发送请求并且获取响应
is=conn.getInputStream()
6>解析响应数据,获取响应文本
is转换为String



收藏
0 条回帖
需要登陆后才可进行回复 登录
*滑动验证:

返回顶部
现在加入我们,注册一个账号 账号登陆 QQ账号登陆 微博账号登陆