这里介绍了android快速开发框架afinal0.3的http操作模块 FinalHttp,希望能对你们有所帮助。
afinal 网址:
https://github.com/yangfuhai/afinal
http://code.google.com/p/afinal/
普通的get操作:
FinalHttp fh = new FinalHttp();
fh.get("http://www.yangfuhai.com", new AjaxCallBack<String>(){
@Override
public void onLoading(long count, long current) { //每1秒钟自动被回调一次
textView.setText(current+"/"+count);
}
@Override
public void onSuccess(String t) {
textView.setText(t==null?"null":t);
}
@Override
public void onStart() {
//开始http请求的时候回调
}
@Override
public void onFailure(Throwable t, String strMsg) {
//加载失败的时候回调
}
});
FinalHttp fh = new FinalHttp();
fh.get("http://www.yangfuhai.com", new AjaxCallBack<String>(){
@Override
public void onLoading(long count, long current) { //每5秒钟自动被回调一次,通过progress是否回调onLoading和回调频率
textView.setText(current+"/"+count);
}
@Override
public void onSuccess(String t) {
textView.setText(t==null?"null":t);
}
}.progress(true,5));//通过这里设置onloading的频率
AjaxParams params = new AjaxParams();
params.put("username", "michael yang");
params.put("password", "123456");
params.put("email", "test@tsz.net");
params.put("profile_picture", new File("/mnt/sdcard/pic.jpg")); // 上传文件
params.put("profile_picture2", inputStream); // 上传数据流
params.put("profile_picture3", new ByteArrayInputStream(bytes)); // 提交字节流
FinalHttp fh = new FinalHttp();
fh.post("http://www.yangfuhai.com", params, new AjaxCallBack<String>(){
@Override
public void onLoading(long count, long current) {
textView.setText(current+"/"+count);
}
@Override
public void onSuccess(String t) {
textView.setText(t==null?"null":t);
}
});
android文件下载:
FinalHttp fh = new FinalHttp();
fh.download("http://www.xxx.com/下载路径/xxx.apk", "/mnt/sdcard/testapk.apk", new AjaxCallBack<File>() {
@Override
public void onLoading(long count, long current) {
textView.setText("下载进度:"+current+"/"+count);
}
@Override
public void onSuccess(File t) {
textView.setText(t==null?"null":t.getAbsoluteFile().toString());
}
});
http cookie操作:
BasicClientCookie bcc = new BasicClientCookie("", "");
bcc.setDomain("yangfuhai.com");
bcc.setPath("/");
bcc.setVersion(1);
PreferencesCookieStore pcs = new PreferencesCookieStore(this);
pcs.addCookie(bcc);
FinalHttp fh = new FinalHttp();
hk.setCookieStore(pcs);
fh.post("http://www.yangfuhai.com", new AjaxCallBack<String>(){
@Override
public void onLoading(long count, long current) {
textView.setText(current+"/"+count);
}
@Override
public void onSuccess(String t) {
textView.setText(t==null?"null":t);
}
});
亲,是不是有了这个框架,你就可以减少至少一半的代码呢?