【Android新手笔记五】okhttp3网络通信框架
来源:互联网 发布:淘宝怎么设置不包邮 编辑:程序博客网 时间:2024/06/04 21:12
项目需要实现与服务器的数据传输。
只是进行表格数据的传输,不包含文件的上传下载,因此选择了虽然数据量不大但传输速度快的http通信协议。
尝试使用过volley类,不知道为啥没有捣鼓成功就去用了比较新的okhttp3~
参考鸿洋大神的博客http://blog.csdn.net/lmj623565791/article/details/47911083
首先直接导入了鸿洋大神的github封装类:
compile 'com.zhy:okhttputils:2.3.9' //build.gradle文件里写下这一行就好
别忘了还需要网络授权,就是在配置文件里application前加一行
<uses-permission android:name="android.permission.INTERNET"/>
之后在activity中导入相关okhttp3的类包进行数据传输,大概的类包是这些:
import okhttp3.Call;import okhttp3.Callback;import okhttp3.FormBody;import okhttp3.MediaType;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.RequestBody;import okhttp3.Response;采用post请求向服务器传输json数据并处理返回的代码:
final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); //编码格式,utf-8 JSONObject jsonObject = new JSONObject(); try { jsonObject.put("tag", "clinic_reception_get"); jsonObject.put("name", stringname); jsonObject.put("userID", stringID); jsonObject.put("number", number); //上传到服务器的jsonobject键值对 } catch (JSONException e) { e.printStackTrace(); } RequestBody body = FormBody.create(JSON, jsonObject.toString()); //post的数据格式转化 OkHttpClient client = new OkHttpClient(); //创建okhttpClient对象 Request request = new Request.Builder().url(URL).post(body).build(); //创建一个request Call call= client.newCall(request); //回调函数 call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { //请求失败 } @Override public void onResponse(Call call, Response response) throws IOException { //请求成功 try { JSONObject object = new JSONObject(response.body().string()); //返回的json数据 error = object.getBoolean("error"); if (!error) { name.setText(object.getString("name")); age.setText(object.getString("age")); date.setText(object.getString("date")); subject_info.setText(object.getString("subject_info")); object_info.setText(object.getString("object_info")); assessment.setText(object.getString("assessment")); recipe.setText(object.getString("recipe")); reception_doctor.setText(object.getString("reception_doctor")); } else { String errorMsg = object.getString("error_msg"); Looper.prepare(); Toast toast = Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG); toast.show(); Looper.loop(); } } catch (JSONException e) { e.printStackTrace(); } } });
如果线程冲突,可以新建一个子线程,再执行数据传输操作试试~
0 0
- 【Android新手笔记五】okhttp3网络通信框架
- 笔记:Android OkHttp3网络请求框架详解
- Android网络框架OKhttp3学习笔记
- Android-网络框架01OKHttp3
- Android网络请求框架----okHttp3
- android 网络框架之okhttp3
- Android OkHttp3网络请求框架使用入门
- Android网络通信框架
- android okhttp3框架使用
- Android网络请求框架之——okhttp3
- 网络请求框架(OKHttp3.0)
- okhttp3的网络请求框架
- 网络请求篇--okhttp3框架
- Android网络通信框架Volley的学习笔记
- Android网络通信框架:Volley
- Android网络通信框架Volley
- Android网络通信框架Volley
- Android网络通信框架Volley
- 微信浏览器强制使用
- 从安卓获取短信内容为例 浅谈安卓的广播的使用
- 设计模式05_抽象工厂模式
- mysql删除重复数据
- 轮播图简单实现
- 【Android新手笔记五】okhttp3网络通信框架
- java list排序
- IaaS, PaaS和SaaS公司都做些什么
- 从虚幻 4 中采集 360 度立体电影
- Jmeter之参数化
- 欢迎使用CSDN-markdown编辑器
- Python——目录操作
- swift学习日志—— if let 与 guard 语法糖
- 访问统计