`

Android用Apache HttpClient 实现POST和Get请求

阅读更多

类 : org.apache.http.client.HttpClient;

1.  GET实现

package com.yarin.android.Examples_08_02;

import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Activity02 extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.http);
		TextView mTextView = (TextView) this.findViewById(R.id.TextView_HTTP);
		// http地址
		String httpUrl = "http://192.168.1.110:8080/httpget.jsp?par=HttpClient_android_Get";
		// HttpGet连接对象
		HttpGet httpRequest = new HttpGet(httpUrl);
		try {
			// 取得HttpClient对象
			HttpClient httpclient = new DefaultHttpClient();
			// 请求HttpClient,取得HttpResponse
			HttpResponse httpResponse = httpclient.execute(httpRequest);
			// 请求成功
			if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
				// 取得返回的字符串
				String strResult = EntityUtils.toString(httpResponse
						.getEntity());
				mTextView.setText(strResult);
			} else {
				mTextView.setText("请求错误!");
			}
		} catch (ClientProtocolException e) {
			mTextView.setText(e.getMessage().toString());
		} catch (IOException e) {
			mTextView.setText(e.getMessage().toString());
		} catch (Exception e) {
			mTextView.setText(e.getMessage().toString());
		}

		// 设置按键事件监听
		Button button_Back = (Button) findViewById(R.id.Button_Back);
		/* 监听button的事件信息 */
		button_Back.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v) {
				/* 新建一个Intent对象 */
				Intent intent = new Intent();
				/* 指定intent要启动的类 */
				intent.setClass(Activity02.this, Activity01.class);
				/* 启动一个新的Activity */
				startActivity(intent);
				/* 关闭当前的Activity */
				Activity02.this.finish();
			}
		});
	}
}

 

 

2.  POST

 

package com.yarin.android.Examples_08_02;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Activity03 extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.http);
		TextView mTextView = (TextView) this.findViewById(R.id.TextView_HTTP);
		// http地址
		String httpUrl = "http://192.168.1.110:8080/httpget.jsp";
		// HttpPost连接对象
		HttpPost httpRequest = new HttpPost(httpUrl);
		// 使用NameValuePair来保存要传递的Post参数
		List<NameValuePair> params = new ArrayList<NameValuePair>();
		// 添加要传递的参数
		params.add(new BasicNameValuePair("par", "HttpClient_android_Post"));
		try {
			// 设置字符集
			HttpEntity httpentity = new UrlEncodedFormEntity(params, "gb2312");
			// 请求httpRequest
			httpRequest.setEntity(httpentity);
			// 取得默认的HttpClient
			HttpClient httpclient = new DefaultHttpClient();
			// 取得HttpResponse
			HttpResponse httpResponse = httpclient.execute(httpRequest);
			// HttpStatus.SC_OK表示连接成功
			if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
				// 取得返回的字符串
				String strResult = EntityUtils.toString(httpResponse.getEntity());
				mTextView.setText(strResult);
			} else {
				mTextView.setText("请求错误!");
			}
		} catch (ClientProtocolException e) {
			mTextView.setText(e.getMessage().toString());
		} catch (IOException e) {
			mTextView.setText(e.getMessage().toString());
		} catch (Exception e) {
			mTextView.setText(e.getMessage().toString());
		}
		// 设置按键事件监听
		Button button_Back = (Button) findViewById(R.id.Button_Back);
		/* 监听button的事件信息 */
		button_Back.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v) {
				/* 新建一个Intent对象 */
				Intent intent = new Intent();
				/* 指定intent要启动的类 */
				intent.setClass(Activity03.this, Activity01.class);
				/* 启动一个新的Activity */
				startActivity(intent);
				/* 关闭当前的Activity */
				Activity03.this.finish();
			}
		});
	}
}

 

Apache org.apache.http.client.HttpClient;

分享到:
评论
1 楼 greatwqs 2011-05-05  
ApacheGet :  HttpGet httpRequest = new HttpGet(httpUrl);   
ApachePost:  HttpPost httpRequest = new HttpPost(httpUrl);   


// 取得HttpClient对象   
HttpClient httpclient = new DefaultHttpClient();   
// 请求HttpClient,取得HttpResponse   
HttpResponse httpResponse = httpclient.execute(httpRequest);   



// HttpStatus.SC_OK表示连接成功   
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {   
// 取得返回的字符串   
String strResult = EntityUtils.toString(httpResponse.getEntity());   
mTextView.setText(strResult);   
} else {   
mTextView.setText("请求错误!");   
 } 

相关推荐

    HttpClient实现POST GET和文件下载

    HttpClient是Apache基金会开发的一个HTTP客户端库...无论是简单的GET和POST请求,还是复杂的文件上传和下载,都可以通过其丰富的API来实现。在使用过程中,注意合理的错误处理和资源管理,可以提升代码的健壮性和效率。

    Http(get)请求数据Android Studio使用HttpClient

    总之,了解如何使用`HttpClient`进行GET请求是Android开发的基础技能,但随着技术的发展,建议学习和使用更现代的网络库,以提升应用的效率和维护性。在实际项目中,务必考虑兼容性和最佳实践,以确保应用程序的稳定...

    java HttpClient 发送GET请求和带有表单参数的POST请求教程例子

    ### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 ...通过上述示例和解释,你应该能够理解和掌握如何使用Java HttpClient库来发送GET和POST请求,这对于开发Web应用程序或与API接口交互至关重要。

    apache httpclient jar包

    Apache HttpClient是一款广泛使用的Java库,专门用于执行HTTP请求。它属于Apache HttpComponents项目的一部分,旨在提供一个高效、灵活且可扩展的HTTP客户端API。在Java应用程序中,如果你需要与Web服务器进行交互,...

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    这个压缩包可能包含了实现HTTP GET和POST请求所需的jar包以及示例代码,帮助开发者理解如何使用HttpClient进行网络通信。下面将详细介绍HttpClient库,HTTP请求的基本概念,以及GET和POST方法的差异。 HttpClient是...

    httpclient post方式发送请求

    总结起来,使用Apache HTTPClient库以POST方式发送JSON数据涉及的主要步骤包括:配置HttpClient实例、创建HttpPost对象、构建JSON实体、设置请求头和执行请求。通过这种方式,你可以方便地与Web服务进行交互,传递...

    HttpClient模拟get,post请求并发送请求参数(json等)

    它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用HttpClient进行HTTP请求操作,以及如何处理JSON数据。 首先,我们需要引入HttpClient的相关依赖...

    httpclient发送get请求和post请求demo

    在Java编程中,Apache HttpClient库是一个非常常用的工具,它提供了对HTTP协议的强大支持,包括GET和POST请求。本文将深入探讨如何使用HttpClient进行GET和POST请求,并提供相关的代码示例。 首先,GET请求是最常见...

    httpclient发送post请求

    本篇文章将深入探讨如何使用HTTPClient发送POST请求,以及相关的项目结构和实现细节。 首先,"post-demo"项目定义了我们需要调用的接口。通常,这会是一个Web服务,可能是一个RESTful API,提供特定的功能或数据。...

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    在示例代码中,我们使用HttpGet对象来发送POST请求,并指定请求的URL、请求头和请求体。 使用HttpClient发送POST请求可以帮助我们与HTTPS服务器进行交互,但需要注意证书验证过程。使用X509TrustManager可以忽略...

    Apache httpclient源码4.5.12

    例如,`HttpGet`用于GET请求,`HttpPost`用于POST请求,你可以通过它们设置URL、添加请求头和请求体。 在HTTP请求中,连接管理和池化非常重要。HttpClient的`PoolingHttpClientConnectionManager`实现了连接池,...

    apache httpclient源代码,eclipse查看源码

    - 在Android中使用HttpClient需要注意版本兼容性,因为从API 22开始,HttpClient已被弃用,建议使用`HttpURLConnection`。 - 但HttpClient的稳定性和灵活性使其在某些场景下仍然是首选,特别是在处理复杂的HTTP...

    Android-HttpClient工具类简单轻松的实现getpostput和delete请求

    在Android开发过程中,网络请求是不可或缺的一部分,而`HttpClient`是一个强大的HTTP客户端库,它允许开发者执行各种HTTP操作,如GET、POST、PUT和DELETE。本篇文章将详细讲解如何使用`HttpClient`工具类来简化这些...

    apache HttpClient jar包

    通过使用`HttpGet`和`HttpPost`等类,你可以设置URL、添加请求头和参数,以满足不同的请求需求。 2. **管理连接池**:HttpClient支持连接池管理,通过`PoolingHttpClientConnectionManager`,可以有效地复用HTTP...

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    总结,HttpClientUtil 是一个方便的工具类,封装了 Apache HttpClient 库,简化了 HTTP 请求的发送,特别是对于 GET 和 POST 请求。它使用了 Fastjson 和 Guava 库来处理数据的序列化和集合操作,提高了代码的可读性...

    apache httpclient 源码和 jar包

    HttpClient的源码包含了大量类和接口,如`CloseableHttpClient`、`HttpGet`、`HttpPost`等,这些类用于构建和发送HTTP请求,处理响应。通过阅读源码,我们可以学习如何实现HTTP客户端的功能,如设置请求头、处理...

Global site tag (gtag.js) - Google Analytics