AsyncHttpClient 网络请求+ fastJson解析数据
来源:互联网 发布:黑莓 转制软件 编辑:程序博客网 时间:2024/06/05 21:58
1.首先需要在代码中添加这两个控件的jar包支持:
厚颜无耻附上下载链接:
http://download.csdn.net/download/sk2die/10153192
2.使用get请求获取服务器数据(json)
注意:json解析时应判断json数据格式是否正确书写,否则容易出错。
json数据格式:
{ "imageArr": [ { "ID": "1", "IMAPAURL": "http:// ******** ", "IMAURL": "http:// ********" }, { "ID": "2", "http:// ********", "IMAURL": "http:// ********" }, { "ID": "3", "IMAPAURL": "http:// ********", "IMAURL": "http:// ********" }, { "ID": "5", "IMAPAURL": "http:http:// ********", "IMAURL": "http:// ********" } ], "proInfo": { "id": "1", "memberNum": "100", "minMoney": "100", "money": "10", }}
对应的类如下(相应的Image和product又是一个类,这里就不相应贴出,原理相同):
public class Index { public Product product; public List<Image> imageList;}
AsyncHttpClient client = new AsyncHttpClient();client.get("这里应放上面的json数据的url地址", new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, String content) { index = new Index(); JSONObject jsonObject = JSON.parseObject(content); String imageArr = jsonObject.getString("imageArr"); List<Image> images = JSON.parseArray(imageArr, Image.class); String proInfo = jsonObject.getString("proInfo"); Product product = JSON.parseObject(proInfo, Product.class); index.product = product; index.imageList = images; } @Override public void onFailure(Throwable error, String content) { super.onFailure(error, content); }});
如此,json解析之后index对象中就存放了前面json数据格式中的全部数据,可以通过点属性(如index.product.id)的方式获取。
3.利用post请求向服务器传递json数组:
下面是json数组的封装:
下面的object仅有两个属性,id和answer。个数为mapSize个。
JSONArray jsonArray = new JSONArray();for (int i = 0; i < mapSize; i++) { JSONObject jsonObject = new JSONObject(); jsonObject.put("id", i); jsonObject.put("answer", et[i].getText().toString()); jsonArray.add(jsonObject);}
AsyncHttpClient的处理部分
AsyncHttpClient client = new AsyncHttpClient();String url = AppHttpUrl.url;client.addHeader("cookie", Util.getSessionId());//添加cookie,表示请求头。RequestParams params = new RequestParams();params.put("ans",jsonArray.toString());client.post(getApplicationContext(), url,params,new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, String content) { super.onSuccess(statusCode, content); JSONObject jsonObject = JSON.parseObject(content); if (jsonObject != null) { if (jsonObject.getInteger("success") == 0) { Toast.makeText(getApplicationContext(), "success", Toast.LENGTH_SHORT).show(); AppManager.getInstance().removeAll(); } } } @Override public void onFailure(Throwable error, String content) { super.onFailure(error, content); }});
将session保存到SharedPreferences中
Headers headers = response.headers();List<String> cookies = headers.values("Set-Cookie"); if (cookies.size() > 0) { String session = cookies.get(0); String s = session.substring(0, session.indexOf(";")); Util.setPhpSessionId(s); }
阅读全文
0 0
- AsyncHttpClient 网络请求+ fastJson解析数据
- xutils网络数据请求,fastjson解析数据
- AsyncHttpClient请求网络数据小节!
- 【快速开发】OKhttp3+fastjson 网络数据的请求与解析
- 使用AsyncHttpClient框架来完成网络数据的请求
- Android请求网络数据,json解析-FastJson遇到的问题 首字母大写问题
- 利用FastJson来解析网络数据
- Android网络数据解析之FastJson
- Android网络请求框架--AsyncHttpClient
- 网络请求框架(一):AsyncHttpClient
- XListView 刷新 + AsyncHttpClient网络请求
- 网络请求数据解析
- 网络数据请求解析
- Android Volley请求json数据,fastJson解析json数据
- 解析数据与网络请求
- IOS 请求网络数据,解析
- 网络请求数据Pull解析
- Json解析网络请求数据
- 计算机网络 —— TCP、UDP 和 ARP 的知识点总结
- DP题目
- ICPC 2015 北京 Today Is a Rainy Day
- 机房重构---下机
- redis命令快速检索
- AsyncHttpClient 网络请求+ fastJson解析数据
- 侧拉——我的相册——基础布局逻辑
- 【网络流二十四题 太空飞行计划问题】【最大权闭合图->最小割】
- C++基本语法
- JVM-垃圾收集器
- hdu
- redis持久化内存数据库中的数据到文件,以及从文件中初始化数据到内存数据库
- 带模板的基于 SBT 的名次树
- python基础(01)——注释,变量,数字类型