HttpClient在安卓中的应用
来源:互联网 发布:维基百科数据库 使用 编辑:程序博客网 时间:2024/05/16 18:27
本文部分图片摘自网络。
移动互联网,移动起来就要有网络传输方式
我们常见的的有get和post
get网络特点:http://httpbin.org/get?name=zhangsan&age=18
{ "args": { "age": "18", "name": "zhangsan" }, "headers": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Encoding": "gzip,deflate,sdch", "Accept-Language": "zh-CN,zh;q=0.8", "Host": "httpbin.org", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 SE 2.X MetaSr 1.0" }, "origin": "36.110.119.54", "url": "http://httpbin.org/get?name=zhangsan&age=18"}
post网络特点:http://httpbin.org/post
{
"args": {
"atool_timestamp": "1463955068"
},
"data": "",
"files": {},
"form": {//已经收到请求数据
"age": "18",
"name": "zhangsan"
},
"headers": {
"Accept": "*/*",
"Content-Length": "20",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.1)"
},
"json": null,
"origin": "42.96.133.35",
"url": "http://httpbin.org/post?atool_timestamp=1463955068"
}
今天主要讲post方式,post数据形式
1.key - value形式
2.jsonString
3.file
一、key-value
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost("http://httpbin.org/post"); //缺少参数
HttpResponse response = httpClient.execute(post);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity resEntity = response.getEntity();
String result = EntityUtils.toString(resEntity);
System.out.println("result:" + result);
}
//设置数据
// 设置post请求的参数
List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
// 遍历map,拿到具体的参数
for (Map.Entry<String, String> info : paramsMap.entrySet()) {
String key = info.getKey();// 参数的key
String value = info.getValue();// 参与具体的value
BasicNameValuePair basicNameValuePair = new BasicNameValuePair(key, value);
parameters.add(basicNameValuePair);
}
HttpEntity reqEntity = new UrlEncodedFormEntity(parameters);
post.setEntity(reqEntity); 二、jsonString
key-value缺点是结构单一,一直put参数
jsonString结构可以无限嵌套,拼写方便
{
"args": {
"atool_timestamp": "1463955068"
},
"data": "",
"files": {},
"form": {
},
"headers": {
"Accept": "*/*",
"Content-Length": "20",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.1)"
},
"json":{
“name”:zhangsan
“age”:18
“sex”:1
},
"origin": "42.96.133.35",
"url": "http://httpbin.org/post?atool_timestamp=1463955068"
}
二、file文件上传
用的多不多:朋友圈上传图片,意见反馈,晒图
FileEntiy惯性思维,根据上面所学用FileEntiy传文件
httpmime-4.2.5.jar:文件上传用这个jar包
用MultipartEntity这个Entity上传图片
key-value形式上传图片
键为actimg 值传一个file
MultipartEntity 上传多张图片
上传数据多种类型。那么服务器怎么知道上传数据的形式
可以人员之间约定,但这样不规范。如果不认识服务器的人员就没发预定
那么我们就用到了Content-Type,为javaWeb当中的知识
1、 服务端需要返回一段普通文本给客户端,Content-Type="text/plain"
2 、服务端需要返回一段HTML代码给客户端 ,Content-Type="text/html"
3 、服务端需要返回一段XML代码给客户端 ,Content-Type="text/xml"
4 、服务端需要返回一个file给
5 、服务端需要返回一段json串给客户端
2 、服务端需要返回一段HTML代码给客户端 ,Content-Type="text/html"
3 、服务端需要返回一段XML代码给客户端 ,Content-Type="text/xml"
4 、服务端需要返回一个file给
5 、服务端需要返回一段json串给客户端
Content-Type种类
application/x-www-form-urlencoded:表单,key-value
mutipart/form-data:二进制,file
text/plain:普通文本,默认类型
application/json:json数据,***注意有好多服务器默认是json,但要手动加上
手动加一个application/json。
有可能一次copy一个网络请求代码就能通了。
但有的服务器默认text/plain。你传json过去了,就会报json解析异常
有的大公司就判断Content-Type类型,如果类型不对就报错
模拟请求工具
http://www.atool.org/httptest.php
工具,chrom浏览器postman插件。火狐浏览器:restclient
不想在浏览器上用,feddler。可以抓包,可以模拟数据发送
阅读全文
0 0
- HttpClient在安卓中的应用
- 观察者模式在安卓中的应用
- Application在安卓中的应用
- kotlin在安卓中的应用
- 安卓学习之httpclient的应用
- HttpClient结合XSLT在JAVA中的应用
- HttpClient在Android网络通信中的应用
- android102--MVC原理 和在安卓中的应用
- Ogre MyGUI 中文方案及在安卓中的应用
- 安卓PagerAdapter在广告切换中的应用
- Socket编程在安卓开发中的应用
- 开放式地图OpenStreeMap在安卓中的应用
- JAVA观察者模式在安卓中的应用
- httpclient连接池在ES Restful API请求中的应用
- 安卓-httpclient超时
- 安卓HttpClient操作
- 安卓 HttpClient
- 安卓开发-HttpClient使用
- BZOJ1174 [Balkan2007] Toponyms 邻接链表优化 TRIE树
- 百度人脸比对Demo
- Uboot启动流程
- javaScript:页码实现
- Developing with Couchbase Server.pdf 英文原版 免费下载
- HttpClient在安卓中的应用
- 前端小技巧--三级联动
- 计算机会议排名等级
- Android service 不是进程也不是线程
- NOIP2017 普及组 蒟蒻的题解报告
- OCAOCP Java SE 7 Programmer I
- 侧滑菜单之ResideMenu
- 分答项目_知识点_微擎web页面
- 抽象类和接口的区别