1. 程式人生 > >使用AsyncHttpClient 實現get和post請求

使用AsyncHttpClient 實現get和post請求

AsyncHttpClient簡介:

AsyncHttpClient庫 基於ApacheHttpClient框架,是一個非同步的httpClient, 所有的http請求都在子執行緒中,但是callback執行的執行緒和建立這個callback的執行緒是同一個(也即主執行緒建立的callback那麼執行的時候也是在主執行緒中)


實現get和post請求:

public class MainActivity extends Activity {

	private EditText usernameET;
	private EditText passwordET;
	private AsyncHttpClient client;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		usernameET = (EditText) this.findViewById(R.id.UsernamET);
		passwordET = (EditText) this.findViewById(R.id.PaswordET);
		client = new AsyncHttpClient();
	}
	public void get(View v) throws Exception{
		
		String username = usernameET.getText().toString().trim();
		String password = passwordET.getText().toString().trim();
		String path = "";
		String params = "username=" + URLEncoder.encode(username, "UTF-8") + "&password="+  URLEncoder.encode(password, "UTF-8");
		
		client.get(path+"?"+params, new AsyncHttpResponseHandler() {
			@Override
			public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), "登陸成功", Toast.LENGTH_SHORT)
				.show();
			}
			
			@Override
			public void onFailure(int statusCode, Header[] headers,
					byte[] responseBody, Throwable error) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), "登陸失敗", Toast.LENGTH_SHORT)
				.show();
			}
		});
	}
	public void post(View v){
		String username = usernameET.getText().toString().trim();
		String password = passwordET.getText().toString().trim();
		String path = "";
		RequestParams params  = new RequestParams();
		params.put("username", username);
		params.put("password", password);
		client.post(path, params, new AsyncHttpResponseHandler() {
			
			@Override
			public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), "登陸成功", Toast.LENGTH_SHORT)
				.show();
			}
			
			@Override
			public void onFailure(int statusCode, Header[] headers,
					byte[] responseBody, Throwable error) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), "登陸失敗", Toast.LENGTH_SHORT)
				.show();
			}
		});
	}
}
使用AsyncHttpClient實現網路圖片的讀取:
public void onClick(View v){
		
		String path = pathText.getText().toString().trim();
		client.get(path, new AsyncHttpResponseHandler() {
			
			@Override
			public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
				// TODO Auto-generated method stub
				Bitmap image = BitmapFactory.decodeByteArray(responseBody, 0, responseBody.length);	
				Image.setImageBitmap(image);
				Toast.makeText(getApplicationContext(), "獲取成功", Toast.LENGTH_SHORT)
				.show();
			}
			
			@Override
			public void onFailure(int statusCode, Header[] headers,
					byte[] responseBody, Throwable error) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), "獲取失敗", Toast.LENGTH_SHORT)
				.show();
			}
		});
	}

當然,這個是最基礎的用法了,之後會有關於AsyncHttpClient的上傳和下載等用法

相關推薦

使用AsyncHttpClient 實現getpost請求

AsyncHttpClient簡介: AsyncHttpClient庫 基於Apache的HttpClient框架,是一個非同步的httpClient, 所有的http請求都在子執行緒中,但是callback執行的執行緒和建立這個callback的執行緒是同一個(也即主執

PHP中使用CURL實現GETPOST請求

由於 protocol 對稱加密 即使 匯報 bst 接口 useragent 拷貝 一、什麽是CURL? cURL 是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 庫。使用php的cURL

利用Java實現GETPOST請求

三個類 Java建立代理連線物件 Java傳送Post請求 Java傳送Get請求 程式碼 Java建立代理連線物件 /** * 1.返回代理物件 * @param proxyIp * @param

PHP中使用cURL實現GetPost請求的方法

data print str close arr 設置 高級特性 post數據 decode cURL 是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 庫。本文將介紹 cURL 的一些高級特

PHP中使用CURL實現GETPOST請求(詳細)

一、什麼是CURL? cURL 是一個利用URL語法規定來傳輸檔案和資料的工具,支援很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支援 cURL 庫。使用PHP的cURL庫可以簡單和有效地去抓網頁。你只需要執行一個指令碼,然後分析一下你所抓取的網頁,然

CURL實現發送GetPost請求(PHP)

結果 基本 釋放 初始 常用 header 理解 介紹 今天 1.cURL介紹   cURL 是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 庫。本文將介紹 cURL 的一些高級特性,以及

PHP中使用CURL實現模擬GETPOST請求,親測完美解決

//初始化 $curl = curl_init(); //設定抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //設定標頭檔案的資訊作為資料流輸出 curl_setopt($cur

使用CURL實現GETPOST方式請求

 CURL請求,支援GET和POST兩種方式,預設為GET方式,如果傳第二個引數則為POST方式請求,設定了超時時間,避免程式卡死。  function getPost($url,$vars = ''){ $ch = curl_init();

C++:C語言實現HTTP的GETPOST請求例程參考 C++:C語言實現HTTP的GETPOST請求

C++:C語言實現HTTP的GET和POST請求   閱讀目錄   HTTP請求和IP/TCP   實現GET請求   實現POST請求:   參考: 回到頂部

用Java實現傳送http的getpost請求

import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; imp

策略模式實現 retrofit 的getpost請求的公共引數(一)

策略模式的作用,作用是替換if,elst if ,switch case,可是為什麼我就替換不了呢? 比如: 圖書價格,初級會員9折,高階會員打8折 通常實現: private double getPrice(int grade, doubl

Java實現傳送GetPost請求

前言 已經有幾天沒有寫部落格了 , 原因是最近生活中有大量的事情, 儘管每天都在學習 , 但是卻沒有將知識點記錄在部落格中 , 感覺這樣非常不好 . 以後一定要堅持寫部落格 , 記錄自己

策略模式(註解版)實現 retrofit 的getpost請求的公共引數(二)

(想用純策略模式來完全解決 if else if switch case這種需求,是做不到的,或許策略模式根本不能這麼用,最近看到一個開源框架,作者使用策略模式+介面卡模式完美結合,前提是在使用之前要在Application中選擇自己的介面卡,如果兩個介面卡

JAVA的GETPOST請求實現方式

一、介紹使用Java實現GET和POST請求的方法常用的有兩種:HTTPClient和HttpURLConnection。前者是第三方開源框架實現,對HTTP請求的封裝很好,使用HTTPClient基本可以滿足工作需要,其中HTTPClient3.1是org.apache.c

發送getpost請求時常用的content-type

encode json數據格式 ima for www 下載 orm 文件上傳 服務器 常見的媒體格式類型如下: text/html : HTML格式 text/plain :純文本格式 text/xml : XML格式

HttpClient GETPOST請求

pri execute public methods gre col esp odt stringbu package com.rogue.hclient; import java.io.BufferedReader; import java.io.IOExceptio

http基本getpost請求

read exce pen timeout etc builder pri void tin get請求: private static void httpGet(){ BufferedReader br = null; HttpU

GETPOST請求的區別

cat nal 賬號 span asc 交互 cap 開發 code GET和POST請求的區別 GET請求GET /books/?sex=man&name=Professional HTTP/1.1Host: www.wrox.comUser-Agent: Mo

python request 接口測試getpost請求

.post .get access username int 用戶 post請求 運行 開發 開發IDE:pycharm python:2.7.10 get請求 # coding: UTF-8 #兼容中文字符,如果沒有這句,程序中有中文字符時,運行會報錯import

小程序的getpost請求頭的區別

type www 成功 ava form brush quest -type function 小程序在使用wx.request()接口 時 header 請求頭默認是這樣的 wx.request({ url: ‘test.php‘, //僅為示例,並非真實的接口