这里介绍了android快速开发框架afinal0.3的http操作模块 FinalHttp,希望能对你们有所帮助。

afinal 网址:

​https://github.com/yangfuhai/afinal​

​http://code.google.com/p/afinal/​


普通的get操作:





  1. FinalHttp fh = new
  2. fh.get("http://www.yangfuhai.com", new
  3.   
  4. @Override
  5. public void onLoading(long count, long current) { //每1秒钟自动被回调一次
  6. "/"+count);  
  7.     }  
  8.   
  9. @Override
  10. public void
  11. null?"null":t);  
  12.     }  
  13.   
  14. @Override
  15. public void
  16. //开始http请求的时候回调
  17.     }  
  18.   
  19. @Override
  20. public void
  21. //加载失败的时候回调
  22.     }  
  23. });  


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) {
//加载失败的时候回调
}
});




  1. FinalHttp fh = new
  2. fh.get("http://www.yangfuhai.com", new
  3.   
  4. @Override
  5. public void onLoading(long count, long current) { //每5秒钟自动被回调一次,通过progress是否回调onLoading和回调频率
  6. "/"+count);  
  7.     }  
  8.   
  9. @Override
  10. public void
  11. null?"null":t);  
  12.         }  
  13.   
  14. }.progress(true,5));//通过这里设置onloading的频率


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的频率




文件上传或者数据提交:





  1. AjaxParams params = new
  2. "username", "michael yang");  
  3. "password", "123456");  
  4. "email", "test@tsz.net");  
  5. "profile_picture", new File("/mnt/sdcard/pic.jpg")); // 上传文件
  6. "profile_picture2", inputStream); // 上传数据流
  7. "profile_picture3", new ByteArrayInputStream(bytes)); // 提交字节流
  8.   
  9. new
  10. "http://www.yangfuhai.com", params, new
  11. @Override
  12. public void onLoading(long count, long
  13. "/"+count);  
  14.         }  
  15.   
  16. @Override
  17. public void
  18. null?"null":t);  
  19.         }  
  20.  });  


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文件下载:



  1. FinalHttp fh = new
  2. fh.download("http://www.xxx.com/下载路径/xxx.apk", "/mnt/sdcard/testapk.apk", new
  3. @Override
  4. public void onLoading(long count, long
  5. "下载进度:"+current+"/"+count);  
  6.                 }  
  7.   
  8. @Override
  9. public void
  10. null?"null":t.getAbsoluteFile().toString());  
  11.                 }  
  12.   
  13.             });  


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操作:



  1. BasicClientCookie bcc = new BasicClientCookie("", "");   
  2. "yangfuhai.com");  
  3. "/");  
  4. 1);  
  5.           
  6. new PreferencesCookieStore(this);  
  7.         pcs.addCookie(bcc);  
  8.           
  9. new
  10.         hk.setCookieStore(pcs);  
  11.       
  12. "http://www.yangfuhai.com", new
  13. @Override
  14. public void onLoading(long count, long
  15. "/"+count);  
  16.         }  
  17.    
  18. @Override
  19. public void
  20. null?"null":t);  
  21.         }  
  22.   });  


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);
}
});


亲,是不是有了这个框架,你就可以减少至少一半的代码呢?