您好,登錄后才能下訂單哦!
http框架:實(shí)現(xiàn)異步訪問網(wǎng)絡(luò);
使用方法:
(1)創(chuàng)建HttpUtil
public class HttpUtil { private static AsyncHttpClient client = new AsyncHttpClient(); // 實(shí)例話對(duì)象 static { client.setTimeout(11000); // 設(shè)置鏈接超時(shí),如果不設(shè)置,默認(rèn)為10s } /** * url不帶參數(shù)返回String * @param urlString url * @param res 處理handler */ public static void get(String urlString, AsyncHttpResponseHandler res){ client.get(urlString, res); } /** * url帶參數(shù)返回String * @param urlString url * @param params url中的參數(shù) * @param res 處理handler */ public static void get(String urlString, RequestParams params,AsyncHttpResponseHandler res){ // url里面帶參數(shù) client.get(urlString, params, res); } /** * 不帶參數(shù)返回json * @param urlString url * @param res 處理handler */ public static void get(String urlString, JsonHttpResponseHandler res){ // 不帶參數(shù),獲取json對(duì)象或者數(shù)組 client.get(urlString, res); } /** * 帶參數(shù),返回json * @param urlString url * @param params url參數(shù) * @param res 處理handler */ public static void get(String urlString, RequestParams params,JsonHttpResponseHandler res){ // 帶參數(shù),獲取json對(duì)象或者數(shù)組 client.get(urlString, params, res); } /** * 不帶參數(shù),返回byte數(shù)據(jù) * @param uString url * @param bHandler 處理handler */ public static void get(String uString, BinaryHttpResponseHandler bHandler){ // 下載數(shù)據(jù)使用,會(huì)返回byte數(shù)據(jù) client.get(uString, bHandler); } /** * 帶參數(shù)的post 請(qǐng)求c# * @param url * @param params * @param responseHandler */ public static void post(Context context,String url,HttpEntity entity, ResponseHandlerInterface responseHandler){ client.post(context, url, entity, "application/json", responseHandler);//關(guān)鍵是設(shè)置content-type = "application/json" } public static AsyncHttpClient getClient() { return client; } }
(2)在Activity中使用
//url獲取 String url = getString(R.string.url); //初始化網(wǎng)絡(luò)請(qǐng)求參數(shù) RequestParams params = new RequestParams(); params.put(username, username); params.put(password, password); //網(wǎng)絡(luò)請(qǐng)求,處理返回?cái)?shù)據(jù) HttpUtil.get(MyConsts.URL_LOGIN, params, new JsonHttpResponseHandler(){ //網(wǎng)絡(luò)請(qǐng)求成功 public void onSuccess(int statusCode, Header[] headers, JSONObject response) { //成功獲取網(wǎng)絡(luò)數(shù)據(jù),在這里處理網(wǎng)絡(luò)返回的數(shù)據(jù) } //服務(wù)器請(qǐng)求失敗 public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { //訪網(wǎng)絡(luò)失敗 } //請(qǐng)求結(jié)束,不管成功與否都調(diào)用該方法 public void onFinish() { //無論成功與否都會(huì)執(zhí)行該方法 } }); //使用post請(qǐng)求c#服務(wù) String username = et_RegisterUsername.getText().toString(); String password = et_RegisterPasswd.getText().toString(); String realname = et_RegisterTruename.getText().toString(); if (Valid.valid(username) && Valid.stringIsEmail(username) && Valid.valid(password) && Valid.valid(realname)) { //將參數(shù)按照鍵值對(duì)的形式添加到一個(gè)json對(duì)象中,因?yàn)榕cc#交互需要傳遞一個(gè)json串 JSONObject json = new JSONObject(); try { json.put(usernameP, username); json.put(passwordP, password); json.put(realNameP, realname); json.put(originP, origin); StringEntity entity = new StringEntity(json.toString()); HttpUtil.post(LoginActivity.this, url, entity, new JsonHttpResponseHandler() { public void onFinish() { cancelProgressDialog(); } public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { Log.d("failure:", responseString); } public void onSuccess(int statusCode, Header[] headers, JSONObject response) { } }); } catch (JSONException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }
特別注意:onFinish方法在onSucess()和onFailure()方法執(zhí)行之前執(zhí)行;
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。