Android移动应用开发基础教程第7章.pptx
《Android移动应用开发基础教程第7章.pptx》由会员分享,可在线阅读,更多相关《Android移动应用开发基础教程第7章.pptx(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Android移动应用开发基础教程讲授:XXXXX第7章 网络和数据解析本章主要内容:使用WebView基于HTTP协议的网络访问方法解析XML格式数据解析JSON数据7.1 使用WebViewWebView控件用于在Android应用中代替浏览器来显示网页。下面通过具体的实例说明如何使用WebView显示网页。首先在AndroidManifest.xml中申明网络访问权限为主活动布局添加一个WebView控件RelativeLayout xmlns:android=http:/ MainActivity.java protected void onCreate(Bundle savedIns
2、tanceState)super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);WebView webView=(WebView)findViewById(R.id.webView);WebSettings ws=webView.getSettings();ws.setJavaScriptEnabled(true);/启用JavaScript webView.setWebViewClient(new WebViewClient();/使页面导航保持在WebView中 webView.loadUrl(htt
3、p:/);/载入网页7.2 基于HTTP协议的网络访问方法本节主要内容:1.使用HttpURLConnection2.使用OkHttp7.2.1 使用HttpURLConnection使用HttpURLConnection的基本步骤第1步:调用URL对象的openConnection()方法获得HttpURLConnection实例对象。例如:URL url=new URL(https:/);HttpURLConnection con=(HttpURLConnection)url.openConnection();第2步:设置HTTP请求方法。例如:con.setRequestMethod(G
4、ET);常用HTTP请求方法主要有GET和POST两种(注意大写)。GET方法一般用于仅仅希望从服务器返回数据,POST则可向服务器提交数据。第3步:设置请求相关参数。例如,可设置连接和请求的超时设置(单位为毫秒)。con.setConnectTimeout(6000);con.setReadTimeout(6000);如果是采用POST方式,则需要使用DataOutputStream来添加需要向服务器提交的数据。例如:con.setRequestMethod(POST);con.setDoOutput(true);DataOutputStream out=new DataOutputStre
5、am(con.getOutputStream();out.writeBytes(id=admin&pwd=123);向服务器提交的数据采用键值对的方式表示,键值对之间用&符号分隔。第4步:处理返回结果。调用HttpURLConnection对象的getInputStream()方法,获得服务器返回结果的InputStream,从中可获取服务器返回结果。例如:InputStream in=con.getInputStream();reader=new BufferedReader(new InputStreamReader(in);StringBuilder result=new StringB
6、uilder();String s;s=reader.readLine();while(s!=null)result.append(s);s=reader.readLine();7.2.2 使用OkHttpHttpURLConnection 将服务器响应结果封装在InputStream中,需要编程从中读取结果。OkHttp是Square公司开发的一个开源HTTP访问项目,使用起来非常简单。OkHttp主页地址为http:/square.github.io/okhttp,从中可了解OkHttp详细信息。目前,OkHttp最新版本为3.8.0。使用OkHttp步骤第1步:需要修改项目的app/bu
7、ild.gradle文件,添加OkHttp库编译信息。例如:dependencies compile com.android.support:appcompat-v7:25.3.1 testCompile junit:junit:4.12 compile com.squareup.okhttp3:okhttp:3.8.0Gradle在构建项目时,可自动下载需要的OkHttp相关的库文件。使用OkHttp步骤第2步:创建OkHttpClient对象。例如:OkHttpClient okClient=new OkHttpClient();第3步:创建Request.Builder来创建Reques
8、t对象。例如:Request.Builder builder=new Request.Builder();builder.url(https:/);Request request=builder.build();默认OkHttp使用GET方法完成Http请求。如果要使用POST方法向服务器提交数据,则需要创建RequestBody对象来封装数据。例如:RequestBody requestBody=new FormBody.Builder().add(id,admin).add(password,123).build();builder.post(requestBody);使用OkHttp步骤
9、第4步:调用Request对象的execute()方法执行请求,返回结果封装在Response对象中。例如:Response response=okClient.newCall(request).execute();第5步:获得字符串形式的返回结果。例如:String result=response.body().string();7.3 解析XML格式数据XML已成为一种常用的数据交换格式。应用的配置、应用之间交换数据或者是网络数据传输,都会用到XML格式。http:/ 准备XML数据在学习如何解析从服务器获得的XML数据之前,先做一些准备工作,准备好服务器端的XML数据。本书采用Windo
10、ws 10自带的IIS作为Web服务器,在服务器中创建的XML文件getxml.xml。admin 123 jike 456 7.3.2 DOM解析方式DOM 将XML文档看作是一个树形结构,每个标签作为一个节点。DOM解析会遍历XML文档的树形结构,以获得节点和节点文本。读者可访问http:/ DOM详细内容。下面通过一个实例说明如何在Android应用中获取并解析XML文档。(实例项目:源代码07ParseXml)实例关键步骤:申明网络访问权限 实例关键步骤:修改app/build.gradle,添加OkHttp编译信息dependencies compile com.squareup.o
11、khttp3:okhttp:3.8.0实例关键步骤:为主活动布局添加控件LinearLayout 实例关键步骤:修改MainActivity.javaprotected void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvXml=(TextView)findViewById(R.id.tvXml);Button btGetXml=(Button)findViewById(R.id.btGetXml);btGetXml
12、.setOnClickListener(new View.OnClickListener()Override public void onClick(View v)/点击按钮时通过HTTP请求获取XML文档 new Thread(new Runnable()Override public void run()doUrlGet();).start(););实例关键步骤:修改MainActivity.javaButton btDomXml=(Button)findViewById(R.id.btDomXml);btDomXml.setOnClickListener(new View.OnClick
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 移动 应用 开发 基础教程
限制150内