《Android应用开发基础Android应用开发基础 (26).pdf》由会员分享,可在线阅读,更多相关《Android应用开发基础Android应用开发基础 (26).pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 9.2 网络框架 本章内容本章内容 第第1节节 网络概述网络概述 第第2节节 OkHttp网络框架网络框架 第第3节节 Json数据数据 第第3节节 Volley网络框架网络框架 1 OkHttp协议访问例子协议访问例子 9.2 9.2 网络框架网络框架 访问网站数据 访问失败 1 OkHttp框架:框架:处理网络请求的开源项目处理网络请求的开源项目,是安卓端最火热的轻量级是安卓端最火热的轻量级框架框架 允许连接到同一个主机地址的所有请求,提高请求效率 共享Socket,减少对服务器的请求次数 通过连接池,减少了请求延迟 缓存响应数据来减少重复的网络请求 减少了对数据流量的消耗 9.2 9.
2、2 网络框架网络框架 2 OkHttp框架:框架:HttpURLConnection进行通信进行通信 优点:对HttpURLConnection进行封装;调用简单;9.2 9.2 网络框架网络框架 2 Http协议实现协议实现-比较复杂比较复杂 Http线程设计-http连接设置 9.2 9.2 网络框架网络框架 public void public void run()supersuper.run();HttpURLConnection mHttpURLConnection=nullnull;/新建HttpURLConnection 访问对象 BufferedReader mBuffered
3、Reader=nullnull;/新建BufferedReader缓存 InputStream in=nullnull;/新建 InputStream输入流 try try URL mUrl=new new URL(strUrl);/新建 URL对象 mHttpURLConnection=(HttpURLConnection)mUrl.openConnection();/根据URL初始化HttpURLConnection 访问对象 mHttpURLConnection.setConnectTimeout(5000);/设置网络访问超时时间 mHttpURLConnection.setReque
4、stMethod(“GETGET”);/指定请求方式为GET方式 mHttpURLConnection.setReadTimeout(5000);/设置读取数据超时时间 /不用再去判断状态码是否为200 2 Http协议实现协议实现-比较复杂比较复杂 Http线程设计-http读取字符串并返回 9.2 9.2 网络框架网络框架 public void public void run()in=mHttpURLConnection.getInputStream();/获取输入流 mBufferedReader=new new BufferedReader(new new InputStreamRe
5、ader(in);/将输入流放入缓存 StringBuilder response=new new StringBuilder();/新建字符串缓存 String line;/按行读取输入流缓存并将网络访问所有请求存入字符串缓存 while while(line=mBufferedReader.readLine()!=nullnull)response.append(line);mHttpListenermHttpListener.onSuccess(response.toString();/网络请求成功将信息提交回调接口 catch catch(Exception e)e.printStac
6、kTrace();mHttpListenermHttpListener.onFailed(e.toString();/网络请求失败将错误信息提交回调接口 3 OkHttp框架的直接调用框架的直接调用进行通信进行通信 优点:使用OkHttp的CallBack进行数据的回调处理;9.2 9.2 网络框架网络框架 2 Http协议实现协议实现 build.grade中dependencies增加实现OkHttp路径 9.2 9.2 网络框架网络框架 dependencies implementation com.squareup.okhttp3:okhttp:3.11.0com.squareup.o
7、khttp3:okhttp:3.11.0 增加网络访问权限 3 OkHttp协议实现协议实现 主界面监听接口实现-使用OkHttp的CallBack接口 9.2 9.2 网络框架网络框架 private private okhttp3.Callback mokhttp3Callbackmokhttp3Callback;/新建网络监听器对象 private void private void initData()mokhttp3Callbackmokhttp3Callback=new new okhttp3.Callback()/初始化网络监听器对象 public void public voi
8、d onFailure(Call call,IOException e)/实现onFailure接口 mTextViewContentmTextViewContent.setText(e.toString();/将网络失败后获取数据显示 public void public void onResponse(Call call,Response response)throws throws IOException/实现onResponse接口 mTextViewContentmTextViewContent.setText(response.body().string();/将网络成功后获取数据
9、显示 ;主界面启动OkHttp网络请求访问 OkHttpClient mOkHttpClient=new new OkHttpClient();/创建OkHttpClienet实例 Request mRequest=new new Request.Builder().url(ipadress).build();/创建Request请求对象 mOkHttpClient.newCall(mRequest).enqueue(mokhttp3Callbackmokhttp3Callback);/使用newCall创建一个Call对象;调用enqueue入队发送请求获取数据 第11页/共15页 请完成http:/ 的访问后和一个错误的网络地址后截图,打码提交 作答 正常使用主观题需2.0以上版本雨课堂 访问失败 访问网站数据 主观题 10分