安卓基础——网络

 

1.webview的使用

步骤:

1)获取到webview的实例

2)设置webview支持js

3)设置网页跳转只在该webview进行,而不是本地浏览器

4)加载首页

 

核心代码:

 

 

注意:要声明internet的权限。

 

 2.使用HttpURLConnection发送HTTP请求

步骤:

1)得到URL

2)得到HttpURLConnection连接对象

3)给设置该对象一些属性,比如设置连接超时,超时的毫秒数,HTTP请求的方法

4)获取InputStream对象,进行读取返回的数据

5)关闭连接

 

核心代码:

 

 补充:

 

 

3.使用OkHttp

介绍:其是一个网络开源库,内部封装了原生的HttpConnection,可大大简化了获取数据的效果,这种库有多种,Okhttp最常用,还有Picasso,Retrofit等。

 

使用步骤:

1)在闭包中添加依赖

2)获取OkHttpClient对象

3)设置请求对象

4)发送该请求得到response对象

5)调用response对象的body().string()方法获取数据

 

核心代码:

 

 

 

补充:

 

 3.解析XML格式数据

1)使用Pull方式

步骤:

1)获取XmlPullParserFactory实例

2)借1)对象获取XmlPullParser对象

3)调用该对象的setInput()法官法将服务器返回的xml数据设置进去进行解析

 

核心代码:

 

 

 

2)使用SAX方式

 步骤:

1)创建一个类继承DefaultHandler

2)获取SAXParserFactory对象

3)借2)对象获取到XMLReader对象

4)实例化1)中的对象

5)将实例化1)对象设置到XMLReader中

6)调用xmlReader对象的parse()方法来进行解析

 

核心代码:

 

 

在activity中:

 

 

 

 5.解析JSON格式数据

1)使用JSONObject

步骤:

1)将数据传入到JSONArray对象中

2)遍历该对象,从中取出每一个JSONObject对象,取出里面的数据,并且进行处理

 

核心代码:

 

2)使用GSON

步骤:

1)添加依赖

2)写好一个bean对象

3)传入数据获取到该数据的全部bean对象集合

4)遍历取出数据,并且进行处理

 

核心代码:

依赖:

 

bean对象:

 

 

activity中:

 

 

 6.网络编程的最佳实践——打造一个获取数据的工具类

提出问题:

1)其是耗时操作,必定要开一个子线程来进行处理,不然会出现主线程阻塞问题

2)如果只是简单的开线程,可能会信息还没有返回回来,我们就已经处理完毕了,导致操作无意义问题。

 

为了解决上面的问题,我们的解决方案是使用java的回调机制,我们在接口中定义了两个方法,

onFinish()方法表示当服务器成功相应我们请求的时候调用,onError()表示当进行网络操作出现

错误的时候调用。这两个方法都带有参数,前者方法中的参数代表服务器返回的数据,后者的参数记录

着错误的详细信息。

深入:回调机制。

 

 

核心代码:

工具类:

 

 在activity中使用它:

 

 

 

 

 简化版:

 

在activity中:

 

 

posted @ 2017-09-28 11:31  鹏达君  阅读(130)  评论(0编辑  收藏  举报