这里介绍了android快速开发框架afinal0.3的http操作模块 FinalHttp,希望能对你们有所帮助。
afinal 网址:
https://github.com/yangfuhai/afinal
http://code.google.com/p/afinal/
普通的get操作:
- FinalHttpfh=newFinalHttp();
- fh.get("http://www.yangfuhai.com",newAjaxCallBack<String>(){
- @Override
- publicvoidonLoading(longcount,longcurrent){
- textView.setText(current+"/"+count);
- }
- @Override
- publicvoidonSuccess(Stringt){
- textView.setText(t==null?"null":t);
- }
- @Override
- publicvoidonStart(){
-
- }
- @Override
- publicvoidonFailure(Throwablet,StringstrMsg){
-
- }
- });
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) {
//加载失败的时候回调
}
});
- FinalHttpfh=newFinalHttp();
- fh.get("http://www.yangfuhai.com",newAjaxCallBack<String>(){
- @Override
- publicvoidonLoading(longcount,longcurrent){
- textView.setText(current+"/"+count);
- }
- @Override
- publicvoidonSuccess(Stringt){
- textView.setText(t==null?"null":t);
- }
- }.progress(true,5));
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的频率
文件上传或者数据提交:
- AjaxParamsparams=newAjaxParams();
- params.put("username","michaelyang");
- params.put("password","123456");
- params.put("email","[email protected]");
- params.put("profile_picture",newFile("/mnt/sdcard/pic.jpg"));
- params.put("profile_picture2",inputStream);
- params.put("profile_picture3",newByteArrayInputStream(bytes));
- FinalHttpfh=newFinalHttp();
- fh.post("http://www.yangfuhai.com",params,newAjaxCallBack<String>(){
- @Override
- publicvoidonLoading(longcount,longcurrent){
- textView.setText(current+"/"+count);
- }
- @Override
- publicvoidonSuccess(Stringt){
- textView.setText(t==null?"null":t);
- }
- });
AjaxParams params = new AjaxParams();
params.put("username", "michael yang");
params.put("password", "123456");
params.put("email", "[email protected]");
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文件下载:
- FinalHttpfh=newFinalHttp();
- fh.download("http://www.xxx.com/下载路径/xxx.apk","/mnt/sdcard/testapk.apk",newAjaxCallBack<File>(){
- @Override
- publicvoidonLoading(longcount,longcurrent){
- textView.setText("下载进度:"+current+"/"+count);
- }
- @Override
- publicvoidonSuccess(Filet){
- textView.setText(t==null?"null":t.getAbsoluteFile().toString());
- }
- });
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操作:
- BasicClientCookiebcc=newBasicClientCookie("","");
- bcc.setDomain("yangfuhai.com");
- bcc.setPath("/");
- bcc.setVersion(1);
- PreferencesCookieStorepcs=newPreferencesCookieStore(this);
- pcs.addCookie(bcc);
- FinalHttpfh=newFinalHttp();
- hk.setCookieStore(pcs);
- fh.post("http://www.yangfuhai.com",newAjaxCallBack<String>(){
- @Override
- publicvoidonLoading(longcount,longcurrent){
- textView.setText(current+"/"+count);
- }
- @Override
- publicvoidonSuccess(Stringt){
- textView.setText(t==null?"null":t);
- }
- });
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);
}
});
亲,是不是有了这个框架,你就可以减少至少一半的代码呢?