使用AsyncHttpClient 实现get和post请求
2016-10-30 19:46
501 查看
AsyncHttpClient简介:
AsyncHttpClient庫 基於Apache的HttpClient框架,是一個異步的httpClient, 所有的http請求都在子線程中,但是callback執行的線程和創建這個callback的線程是同一個(也即主線程創建的callback那麼執行的時候也是在主線程中)。
实现get和post请求:
[java]
view plain
copy
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实现网络图片的读取:
[java]
view plain
copy
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庫 基於Apache的HttpClient框架,是一個異步的httpClient, 所有的http請求都在子線程中,但是callback執行的線程和創建這個callback的線程是同一個(也即主線程創建的callback那麼執行的時候也是在主線程中)。
实现get和post请求:
[java]
view plain
copy
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实现网络图片的读取:
[java]
view plain
copy
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的上传和下载等用法
相关文章推荐
- android(21)(使用HttpURLConnection,HttpClient和AsyncHttpClient分别实现post和get请求数据)
- 使用AsyncHttpClient 实现get和post请求
- 使用AsyncHttpClient进行get与post请求
- android使用Apache HttpClient实现get/post的请求
- Android中使用HttpURLConnection和HttpClient实现GET和POST请求访问网络
- 使用HttpClient实现Post请求和Get请求
- PHP中使用CURL实现Get和Post请求的方法
- PHP中使用cURL实现Get和Post请求的方法
- PHP中使用cURL实现Get和Post请求的方法
- Java:使用HttpClient进行POST和GET请求以及文件上传和下载
- android使用HttpClient实现post get (和文件上传)
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- HttpUrlConnection和HttpClient和android-async-http框架的GET和POST请求
- PHP中使用cURL实现Get和Post请求的方法
- PHP中使用cURL实现Get和Post请求的方法
- Android用Apache HttpClient 实现POST和Get请求
- Android——HttpClient 实现POST和Get请求,Connection链接
- PHP中使用cURL实现Get和Post请求的方法
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android HTTP实例 使用GET方法和POST方法发送请求(通过Apache接口实现)