频道栏目
首页 > 程序开发 > 移动开发 > 其他 > 正文
使用okHttp发起请求并用fastJson解析
2017-03-20 09:34:04      个评论    来源:sinat_33878878的博客  
收藏   我要投稿

使用okHttp发起请求并用fastJson解析。

第一步要先在AndroidStudio添加支持库。

okHttp:http://square.github.io/okhttp/

fastJson:https://github.com/alibaba/fastjson/wiki/Android%E7%89%88%E6%9C%AC

public class okHttpUtils{

/**

*基本的"get"方法,先获得一个okHttp实例

*/

OkHttpClient client = new OkHttpclient();

String run (String url) throws IOException{

//获得一个Request

Request request = new Request.Builder().url(url).build();

//获得一个Call执行Execute()得到Response对象。

Response response = client.newCall(request).execute();

//根据Response返回结果

if(response.isSucessfully()){

return response.body().string();

}else{

throw IOException();

}

}

}

这里是get,而且需要在用到run()的时候注意在子线程里运行并捕获异常。由于是同步方法,不太适合多请求,可以使用异步方法在子线程里运行。

Call call = client.newCall(request);

call.enqueue(new Callback() {

@Override

public void onFailure(Request request, Throwable throwable) {

这里写代码

}

enqueue(new Callback() {

@Override

public void onFailure(Request request, Throwable throwable){

}

@Override

public void onResponse(Response response) throws IOException {

// response.body().string();在这里可以得到结果并做出相应操作,该方法运行在子线程。

}

}

如果是同步方法,可以这样使用

new Thread(new Runnable() {

okHttpUtils request = new okHttpUtils();

@Override

public void run() {

try{

jsonString = request.run(url);

}catch (Exception e){

e.getMessage();

}

System.out.println("测试" + url + jsonString);

/**

* 解析Json数据

*/

JsonBean.ResultsBean.NowBean mNow = JsonUtils.parseData(jsonString);

System.out.println("Test" + mNow.getTemperature()+ mNow.getText());

temperature = mNow.getTemperature();

weather = mNow.getText();

handler.obtainMessage(UPDATE).sendToTarget();

}

}).start();

}

 

点击复制链接 与好友分享!回本站首页
上一篇:Secrets of Mobile Network Performance Reading Notes
下一篇:认认真真写安卓,服务篇,组件(Service)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训

版权所有: 红黑联盟--致力于做实用的IT技术学习网站