LiteHttp是一款简单、智能、灵活的HTTP框架库,它在请求和响应层面做到了全自动构建和解析,主要用于Android快速开发。借助LiteHttp你只需要一行代码即可完美实现http连接,它全面支持GET, POST, PUT, DELETE, HEAD, TRACE, OPTIONS 和 PATCH八种基本类型。LiteHttp能将Java Model转化为http请求参数,也能将响应的json语句智能转化为Java Model,这种全自动解析策略将节省你大量的构建请求、解析响应的时间。并且,你能自己继承重新实现Dataparser这个抽象类并设置给Request,来将http原始的inputstream转化为任何你想要的东西。
LiteHttpClient client =LiteHttpClient.getInstance(context);
Response res = client.execute(newRequest("http://baidu.com"));
String html = res.getString();
HttpAsyncExcutor asyncExcutor
=newHttpAsyncExcutor();
asyncExcutor.execute(client,newRequest(url),newHttpResponseHandler(){
@Override
protectedvoid
onSuccess(Response res,HttpStatus
status,NameValuePair[]
headers){
// do some thing
on UI thread
}
@Override
protectedvoid
onFailure(Response res,HttpException
e){
// do some thing
on UI thread
}
});
// build a
request url as : http://a.com?name=jame&id=18
Man man =newMan("jame",18);
Response resonse = client.execute(newRequest("http://a.com",man));
man class:
publicclassManimplementsHttpParam{
privateString
name;
privateint
id;
privateint
age;
publicMan(String
name,int
id){
this.name = name;
this.id= id;
}
}
String url ="http://litesuits.github.io/mockdata/user?id=18";
User user =
client.get(url,null,User.class);
User Class :
publicclassUserextendsApiResult{
//全部声明public是因为写sample方便,不过这样性能也好,
//即使private变量LiteHttp也能自动赋值,开发者可自行斟酌修饰符。
publicUserInfo
data;
publicstaticclassUserInfo{
publicString
name;
publicint
age;
publicArrayList<String> girl_friends;
}
}
publicabstractclassApiResult{
publicString
api;
publicString
v;
publicResult
result;
publicstaticclassResult{
publicint
code;
publicString
message;
}
}
User json structure:
{
"api":"com.xx.get.userinfo",
"v":"1.0",
"result":{
"code":200,
"message":"success"
},
"data":{
"age":18,
"name":"qingtianzhu",
"girl_friends":[
"xiaoli",
"fengjie",
"lucy"
]
}
}
String url ="http://192.168.2.108:8080/LiteHttpServer/ReceiveFile";
FileInputStream fis =newFileInputStream(newFile("sdcard/1.jpg"));
Request req =newRequest(url);
req.setMethod(HttpMethod.Post)
.addParam("lite",newFile("sdcard/lite.jpg"),"image/jpeg")
.addParam("feiq",newFile("sdcard/feiq.exe"),"application/octet-stream");
if(fis !=null) req.addParam("meinv", fis,"sm.jpg","image/jpeg");
Response res = client.execute(req);
// one
way
File file = client.execute(imageUrl,newFileParser("sdcard/lite.jpg"),HttpMethod.Get);
// other
way
Response res = client.execute(newRequest(imageUrl).setDataParser(newBitmapParser()));
Bitmap bitmap = res.getBitmap();
LiteHttp:一款‘智能’的HTTP框架类库,布布扣,bubuko.com
原文:http://www.cnblogs.com/youngforlife/p/3651353.html