一:获取json
定义服务器url:
private String parse_url="http://172.17.19.14:8100/hotfix/version";//服务器路径
获取json的代码:
private void parseJson() {
// 用xutils从服务器获取json数据
HttpUtils utils = new HttpUtils();
utils.send(HttpMethod.GET, parse_url, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException error, String msg) {
// TODO Auto-generated method stub
Log.e(TAG, "-----------获取 json失败");
}
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
// TODO Auto-generated method stub
String result = responseInfo.result;
parseData(result);
Log.e(TAG, result+"-----------获取 json成功");
}
});
}
二:解析上面获取到的数据
private void parseData(String result) {
// 用gson解析获取到的json数据,(单条数据,如果有数组等要for循环)
Gson gson = new Gson();
AndfixJson andfixData = gson.fromJson(result, AndfixJson.class);
Log.e(TAG, "fixIndex is = "+andfixData.getFixIndex());
Log.e(TAG, "versionCode is = "+andfixData.getVersionCode());
Log.e(TAG, "url is = "+andfixData.getDownloadUrl());
Log.e(TAG, "md5 is = "+andfixData.getMd5());
}
三:下载
定义路径
private String download_url="http://172.17.19.14:8100/download/1495786665fix_1.0.0_1.apatch";//下载的路径
public String SDPATH = Environment.getExternalStorageDirectory().getAbsolutePath();
String target = SDPATH+"/VCApatch/";//保存路径必须包括有完整的文件名称。
下载(这里还涉及一些问题,比如下载失败重新下载等)
HttpUtils utils = new HttpUtils();
HttpHandler handlerDownload = utils.download(download_url, target, true, true,new RequestCallBack<File>() {
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.e(TAG, "开始下载补丁");
}
@Override
public void onLoading(long total, long current, boolean isUploading) {
// TODO Auto-generated method stub
super.onLoading(total, current, isUploading);
Log.e(TAG, "正在下载补丁");
}
@Override
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
Log.e(TAG, "下载补丁失败");
}
@Override
public void onSuccess(ResponseInfo<File> arg0) {
// TODO Auto-generated method stub
Log.e(TAG, "下载补丁成功");
}
});