http框架:實(shí)現(xiàn)異步訪問網(wǎng)絡(luò);
烏什網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),烏什網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為烏什上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的烏什做網(wǎng)站的公司定做!
使用方法:
(1)創(chuàng)建HttpUtil
public class HttpUtil { private static AsyncHttpClient client = new AsyncHttpClient(); // 實(shí)例話對象 static { client.setTimeout(11000); // 設(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對象或者數(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對象或者數(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ù)使用,會返回byte數(shù)據(jù) client.get(uString, bHandler); } /** * 帶參數(shù)的post 請求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ò)請求參數(shù) RequestParams params = new RequestParams(); params.put(username, username); params.put(password, password); //網(wǎng)絡(luò)請求,處理返回數(shù)據(jù) HttpUtil.get(MyConsts.URL_LOGIN, params, new JsonHttpResponseHandler(){ //網(wǎng)絡(luò)請求成功 public void onSuccess(int statusCode, Header[] headers, JSONObject response) { //成功獲取網(wǎng)絡(luò)數(shù)據(jù),在這里處理網(wǎng)絡(luò)返回的數(shù)據(jù) } //服務(wù)器請求失敗 public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { //訪網(wǎng)絡(luò)失敗 } //請求結(jié)束,不管成功與否都調(diào)用該方法 public void onFinish() { //無論成功與否都會執(zhí)行該方法 } }); //使用post請求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ù)按照鍵值對的形式添加到一個json對象中,因?yàn)榕cc#交互需要傳遞一個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í)行;