溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JAR——android-async-http-1.4.5

發(fā)布時(shí)間:2020-07-11 07:02:19 來源:網(wǎng)絡(luò) 閱讀:442 作者:wauoen 欄目:移動(dòng)開發(fā)
  1. http框架:實(shí)現(xiàn)異步訪問網(wǎng)絡(luò);

  2. 使用方法:

(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í)行;

向AI問一下細(xì)節(jié)

免責(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)容。

AI