ZzHttp,一个简洁的Http框架
来源:互联网 发布:软件用户协议 编辑:程序博客网 时间:2024/05/27 14:13
自己写的http框架。欢迎star
Github地址:www.github.com/zhouzhuo810/ZzHttp
ZzHttp
A http framework for simply GET and POST.
Gradle
compile 'me.zhouzhuo.zzhttp:zz-http:1.0.0'
Maven
<dependency> <groupId>me.zhouzhuo.zzhttp</groupId> <artifactId>zz-http</artifactId> <version>1.0.0</version> <type>pom</type></dependency>
How to use it ?
Don’t forget adding perimssions.
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
If you want to see log info in logcat.
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); ZzHttp.setDebug(true); }}
If there if only one baseUrl.
ZzHttp.getInstance().setBaseUrl("http://api.k780.com:88/")
If there is two or more baseUrl.
public class Api { private static final String ENDPOINT_ONE = "https://www.baidu.com/"; private static final String ENDPOINT_TWO = "http://api.k780.com:88/"; private static ZzHttp apiOne; private static ZzHttp apiTwo; public static ZzHttp getBaiduApi() { if (apiOne == null) { synchronized (Api.class) { if (apiOne == null) { apiOne = ZzHttp.newInstance().setBaseUrl(ENDPOINT_ONE); } } } return apiOne; } public static ZzHttp getWeatherApi() { if (apiTwo == null) { synchronized (Api.class) { if (apiTwo == null) { apiTwo = ZzHttp.newInstance().setBaseUrl(ENDPOINT_TWO); } } } return apiTwo; }}
GET
① return String
Api.getWeatherApi() .get(new HttpParams() .addStringParam("app", "weather.today") .addStringParam("weaid", "1") .addStringParam("appkey", "10003") .addStringParam("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4") .addStringParam("format", "json"), String.class, new Callback.ZzCallback<String>() { @Override public void onSuccess(String result) { refreshLayout.setRefreshing(false); tv.setText(result); } @Override public void onFailure(String error) { refreshLayout.setRefreshing(false); Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show(); } });
②return Object
Api.getWeatherApi() .get(new HttpParams() .addStringParam("app", "weather.today") .addStringParam("weaid", "1") .addStringParam("appkey", "10003") .addStringParam("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4") .addStringParam("format", "json"), WeatherEntity.class, new Callback.ZzCallback<WeatherEntity>() { @Override public void onSuccess(WeatherEntity result) { refreshLayout.setRefreshing(false); tv.setText(result.toString()); } @Override public void onFailure(String error) { refreshLayout.setRefreshing(false); Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show(); } });
POST
①return String
Api.getWeatherApi() .post(new HttpParams() .addStringParam("app", "weather.today") .addStringParam("weaid", "1") .addStringParam("appkey", "10003") .addStringParam("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4") .addStringParam("format", "json"), String.class, new Callback.ZzCallback<String>() { @Override public void onSuccess(String result) { refreshLayout.setRefreshing(false); tv.setText(result); } @Override public void onFailure(String error) { refreshLayout.setRefreshing(false); } });
②return Object
Api.getWeatherApi() .post(new HttpParams() .addStringParam("app", "weather.today") .addStringParam("weaid", "1") .addStringParam("appkey", "10003") .addStringParam("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4") .addStringParam("format", "json"), WeatherEntity.class, new Callback.ZzCallback<WeatherEntity>() { @Override public void onSuccess(WeatherEntity result) { refreshLayout.setRefreshing(false); tv.setText(result.toString()); } @Override public void onFailure(String error) { refreshLayout.setRefreshing(false); } });
Download
final String fileName = new File(filePath1).getName(); String url = "http://192.168.1.102/test/image/" + fileName; final String dir = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "test"; ZzHttp.getInstance().download(url, dir, new Callback.ProgressDownloadCallback() { @Override public void onProgress(float progress, int currentSize, int totalSize) { tv_download_result.setText(progress + ", " + currentSize + "," + totalSize); } @Override public void onSuccess(String result) { ivDown.setImageURI(Uri.fromFile(new File(dir + File.separator + fileName))); } @Override public void onFailure(String error) { } });
Upload(multipart/form-data)
ZzHttp.getInstance() .setBaseUrl("http://192.168.1.102/") .post("test/test.php", new HttpParams() .setConnectTimeout(10000) .setReadTimeout(10000) .addBodyParam("file1", file1) , UploadEntity.class, new Callback.ProgressUploadCallback<UploadEntity>() { @Override public void onProgress(float progress, int currentSize, int totalSize) { tv_result.setText(progress + ", " + currentSize + "," + totalSize); } @Override public void onSuccess(UploadEntity result) { tv_result.setText(result.getCode() + "," + result.getData().getMsg()); } @Override public void onFailure(String error) { Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show(); } });
0 0
- ZzHttp,一个简洁的Http框架
- 一个简洁的Win32程序框架
- Directx11 HelloWorld之_一个简洁漂亮的框架
- Hexo 是一个快速、简洁且高效的博客框架
- 一个简洁的管理菜单
- 一个简洁的管理菜单
- 一个简洁的 JavaScript 库
- 一个程序员的简洁职业生涯规划
- AndroidAnnotations一个可以让你的android代码更加简洁的框架
- AndroidAnnotations一个可以让你的android代码更加简洁的框架
- Sinatra:一个可以作为Rails有益补充的框架. 简洁而不简单
- 一个简洁而不简单的安卓上下拉刷新框架
- 简洁的ORM框架Ibatis(转)
- 简洁自定义框架的开发步骤
- blade - 简洁强大的javaweb框架
- 基于Bootstrap简洁的后台UI框架
- 比butterKnife更简洁的注解框架
- 推荐一个国产简洁易用前段框架
- 禁止dozer映射空属性
- 开播啦
- requirejs:模块加载(require)及定义(define)时的路径小结
- JS 模拟线程实现sleep
- 乐视秒杀:每秒十万笔交易的数据架构解读
- ZzHttp,一个简洁的Http框架
- 开播啦
- 开播啦
- 数据库设计三大范式
- 开播啦
- 虚拟化安全: 创新何在?
- 开播啦
- GPUImage GPUImageFilter.m 源码文件分享与详解
- 开播啦