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中: