Retrofit发送网络请求和解析json实例
来源:互联网 发布:nero9刻录软件免费下载 编辑:程序博客网 时间:2024/06/06 20:39
用Retrofit发送网络请求和解析json的实例
Retrofit是Android的一个非常好用的开源HTTP Request。现在介绍一下Retrofit是如何使用的。。。。
首先是导入Retrofit包,
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.0.0' compile 'com.squareup.retrofit:retrofit:1.9.0'}
然后是根据API的JSON数据建立一个数据类
URL:http://apistore.baidu.com/microservice/weather?citypinyin=beijing
{errNum: 0,errMsg: "success",retData: { city: "北京", //城市 pinyin: "beijing", //城市拼音 citycode: "101010100", //城市编码 date: "15-02-11", //日期 time: "11:00", //发布时间 postCode: "100000", //邮编 longitude: 116.391, //经度 latitude: 39.904, //维度 altitude: "33", //海拔 weather: "晴", //天气情况 temp: "10", //气温 l_tmp: "-4", //最低气温 h_tmp: "10", //最高气温 WD: "无持续风向", //风向 WS: "微风(<10m/h)", //风力 sunrise: "07:12", //日出时间 sunset: "17:44" //日落时间 } }
以下是数据类:
public class Result { private String errNum; private String errMsg; private WeatherData retData; public void setErrNum(String errNum) { this.errNum = errNum; } public void setErrMsg(String errMsg) { this.errMsg = errMsg; } public WeatherData getRetData() { return retData; } public void setRetData(WeatherData retData) { this.retData = retData; } public String getErrNum() { return errNum; } public String getErrMsg() { return errMsg; }}public class WeatherData { private String city; //城市 private String pinyin;//城市拼音 private String citycode; //城市编码 private String date; //日期 private String time;//发布时间 private String postCode; //邮编 private String longitude;//经度 private String latitude; //维度 private String altitude;//海拔 private String weather; //天气情况 private String temp; //气温 private String l_tmp; //最低气温 private String h_tmp; //最高气温 private String WD; //风向 private String WS; //风力 private String sunrise;//日出时间 private String sunset;//日落时间//setter和getter就不贴了}
新建一个MyService的接口,由于之后要在主线程使用(安卓3.0以上主线程不能同步访问网络),所以这里采用异步获取的方式。故增加了Callback< Result > cb
import retrofit.Callback;import retrofit.http.GET;import retrofit.http.Query;public interface MyService { // URI:http://apistore.baidu.com/microservice/weather?citypinyin=beijing @GET("/microservice/weather") void getResult(@Query("citypinyin") String citypinyin, Callback<Result> cb);}
使用RestAdapter来实例化MyService;
import retrofit.RestAdapter;public class MyRestClient { private static String API_URL = "http://apistore.baidu.com"; public static MyService getService() { RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint(API_URL)//设置站点路径 .setLogLevel(RestAdapter.LogLevel.FULL)//设置log的级别 .build(); MyService myService = restAdapter.create(MyService.class); return myService; }}
系统调用如下
@Override public void onStart() { super.onStart(); MyRestClient.getService().getResult("beijing",new Callback<Result>() { @Override public void success(Result result, Response response) { Log.i("",result.getRetData().getDate()); } @Override public void failure(RetrofitError error) { } }); }
别忘了添加网络访问权限哟。
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
1 1
- Retrofit发送网络请求和解析json实例
- Retrofit网络请求库应用02——json解析
- 网络请求和JSON解析
- 网络请求和JSON解析
- 网络请求和JSON解析
- RxJAVA和Retrofit在安卓中网络请求使用实例
- iOS 网络数据请求和Json 解析
- Retrofit 2.0 + OkHttp 3.0+JSON网络请求
- retrofit网络请求参数为json
- 网络请求,JSON解析
- Android网络请求与JSON解析和数据抓取小实例
- Retrofit解析网页Json数据简单实例
- Retrofit解析网页Json数据简单实例
- 【框架】网络请求+Gson解析--Retrofit 2
- Retrofit+RxJava进行网络请求流程解析
- swift 网络请求&json解析
- Json解析网络请求数据
- 请求网络解析json串
- Unity5.0 WebCamTexture 调用外部摄像头
- 调用系统的照相,相册,裁剪功能--activity实现
- Python中elif简单示例
- 如何判断一段程序是由C 编译程序还是由C++编译程序编译的?
- VS2010调试时能够修改代码的设置方法,VS2010调试:“编辑并继续”
- Retrofit发送网络请求和解析json实例
- lazarus自带ssl例子运行测试
- 信息系统项目管理笔记1-信息化基础知识、服务管理、监理知识
- 2015年大一下第6周项目3-分数类中的运算符重载(2)分数与整数的加减乘除
- 多线程中的lock,Monitor.Wait和Monitor.Pulse
- 数组中出现次数超过一半的数字
- iOS一种简单的改变一个label上范围内字体颜色和大小的方法
- iOS 开发中渐变色的使用
- ADO.NET Entity framework 连接MySql 提示The specified store provider cannot be found in the configuration