最近幾天閑的發(fā)慌粒氧,就想著來寫點(diǎn)東西出來,之前發(fā)布了自己的一個(gè)藍(lán)牙開源庫节腐,效果還算可以外盯,毫不夸張的即使是藍(lán)牙初學(xué)者也可以分分鐘上手,主要是因?yàn)閮?nèi)部封裝的很完善翼雀,不需要開發(fā)者再去實(shí)現(xiàn)什么廣播和監(jiān)聽饱苟,想要收到硬件的數(shù)據(jù)回調(diào),也不需要再去手動設(shè)置通知那么麻煩狼渊,因?yàn)檫@些庫中全部都已經(jīng)做了箱熬,開發(fā)者僅僅需要初始化的時(shí)候注冊一個(gè)監(jiān)聽,那么所有的關(guān)于藍(lán)牙的回調(diào)都會拿到狈邑,還沒有了解該庫的朋友可以去看下Github地址城须。接下來言歸正傳,咱們進(jìn)入今天的主題米苹,如何實(shí)現(xiàn)自己的HTTP網(wǎng)絡(luò)加載功能呢糕伐,這個(gè)是個(gè)小DEMO,僅僅是為了初學(xué)者更好的學(xué)習(xí)而已蘸嘶,不建議實(shí)際項(xiàng)目中使用良瞧,畢竟不夠完善。說的再多沒什么用训唱,那么不如先來看下效果:
1褥蚯、GET請求
findViewById(R.id.get).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentTag = 1;
LLHttpManager.doNetGet(currentTag, "https://www.baidu.com", new LLNetCallback() {
@Override
public void onSuccess(int tag, String entity) {
Toast.makeText(MainActivity.this,entity,Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(int tag, String msg, int code) {
Toast.makeText(MainActivity.this,"請求失敗",Toast.LENGTH_LONG).show();
}
});
}
});
2、簡單的POST請求
findViewById(R.id.postSimple).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentTag = 2;
String url = "http://media.e-toys.cn/api/user/loginByMobile";
Map<String,String> params = new HashMap<String, String>();
params.put("mobile", "18682176281");
params.put("password","e10adc3949ba59abbe56e057f20f883e");
LLHttpManager.getInstance().doSimpleNetPost(currentTag, url, params, new LLNetCallback() {
@Override
public void onFailure(int tag, String msg, int code) {
Toast.makeText(MainActivity.this,"請求失敗",Toast.LENGTH_LONG).show();
}
@Override
public void onSuccess(int tag, String data) {
Log.e(TAG, "onSuccess: "+data);
Toast.makeText(MainActivity.this,"請求成功",Toast.LENGTH_LONG).show();
}
});
}
});
3况增、返回實(shí)體對象的的POST請求
findViewById(R.id.postBean).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentTag = 3;
String url = "http://media.e-toys.cn/api/user/loginByMobile";
Map<String,String> params = new HashMap<String, String>();
params.put("mobile", "18682176281");
params.put("password","e10adc3949ba59abbe56e057f20f883e");
LLHttpManager.getInstance().doBeanNetPost(currentTag, url, params, new LLBeanNetCallback<User>() {
@Override
public void onFailure(int tag, String msg, int code) {
Toast.makeText(MainActivity.this,"請求失敗",Toast.LENGTH_LONG).show();
}
@Override
public void onSuccess(int tag, LLResponse<User> data) {
Log.e(TAG, "onSuccess: "+data.getVo().user_name);
Toast.makeText(MainActivity.this,"請求成功",Toast.LENGTH_LONG).show();
}
});
}
});
4赞庶、返回列表對象的的POST請求
findViewById(R.id.postList).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentTag = 4;
String url = "http://media.e-toys.cn/api/user/devices";
HashMap<String,String> params = new HashMap<>();
params.put("token",token);
LLHttpManager.getInstance().doListNetPost(currentTag, url, params, new LLListNetCallback<Device>() {
@Override
public void onFailure(int tag, String msg, int code) {
Toast.makeText(MainActivity.this,"請求失敗",Toast.LENGTH_LONG).show();
}
@Override
public void onSuccess(int tag, LLListResponse<Device> data) {
Log.e(TAG, "onSuccess: "+ data.getList().size());
Toast.makeText(MainActivity.this,"請求成功",Toast.LENGTH_LONG).show();
}
});
}
});
5、取消對應(yīng)的http請求
findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(currentTag > 0){
LLHttpManager.cancelHttp(currentTag);
}
}
});
以上就是該網(wǎng)絡(luò)加載的簡易用法巡通,內(nèi)部已經(jīng)自動進(jìn)行解析尘执,并且可以針對自己服務(wù)器的返回?cái)?shù)據(jù)格式進(jìn)行定制,目前的不足之處就是還沒有做網(wǎng)絡(luò)加載緩存宴凉,網(wǎng)絡(luò)攔截誊锭,還有就是目前只是簡單寫了兩種請求方式,即POST和GET弥锄,所以對于比較小的項(xiàng)目還是比較適合的丧靡。
感興趣的可以到github上下載源碼哦
Github地址