Android开发中网络请求

直接上代码,post请求

public static String httpPost(String posturl,
			List<BasicNameValuePair> listParmas, final Context context) {
		activityContext = context;
		String res = "";
		/**
		 * 先创建连接
		 */
		HttpClient client = getHttpClient();
		/**
		 * 使用Post请求,传入的Http地址正确
		 */
		HttpPost post = new HttpPost(posturl);

		try {
			if (listParmas.size() != 0) {
				post.setEntity(new UrlEncodedFormEntity(listParmas, "utf-8"));
			}
			post.setHeader("token", HttpUrlNew.TOAKEN);
			/**
			 * 开始执行post连接
			 */
			post.getParams().setParameter(
					HttpConnectionParams.CONNECTION_TIMEOUT, TIME_OUT);// 请求超时
			post.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
					TIME_OUT);// 读取超时
			HttpResponse response = client.execute(post);
			if (response.getStatusLine().getStatusCode() == 200) {// 代表请求数据成功
				HttpEntity entity = response.getEntity();
				res = EntityUtils.toString(entity);
			} else {
				HttpEntity entity = response.getEntity();
				res = EntityUtils.toString(entity);
				handler.sendEmptyMessage(Util.HTTP_CONNECTION_500);
			}
		} catch (ClientProtocolException e) {
			handler.sendEmptyMessage(Util.HTTP_CONNECTION_CLIENT_PROTOCOL_EXCEPTION);
			e.printStackTrace();
		} catch (ConnectTimeoutException e) {
			handler.sendEmptyMessage(Util.HTTP_CONNECTION_TIMEOUT);
			// e.printStackTrace();
		} catch (UnknownHostException e) {
			handler.sendEmptyMessage(Util.HTTP_CONNECTION_UNKONW_HOST);
		} catch (IOException e) {
			handler.sendEmptyMessage(Util.HTTP_CONNECTION_IO_EXCEPTION);
		}
		
		return res;

	}

get请求

public static String httpGet(String posturl, Context context) {
		activityContext = context;
		String res = "";
		/**
		 * 先创建连接
		 */
		// HttpClient client = getHttpClient();
		HttpClient client = new DefaultHttpClient();
		/**
		 * 使用get请求,传入的Http地址正确
		 */
		HttpGet get = new HttpGet(posturl);

		try {
			get.setHeader("token", HttpUrlNew.TOAKEN);
			/**
			 * 开始执行get连接
			 */
			get.getParams().setParameter(
					HttpConnectionParams.CONNECTION_TIMEOUT, TIME_OUT);// 请求超时
			get.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
					TIME_OUT);// 读取超时

			HttpResponse response = client.execute(get);
			if (response.getStatusLine().getStatusCode() == 200) {// 代表请求数据成功
				HttpEntity entity = response.getEntity();
				res = EntityUtils.toString(entity);
			} else {
				handler.sendEmptyMessage(Util.HTTP_CONNECTION_500);
			}
		} catch (ClientProtocolException e) {
			handler.sendEmptyMessage(Util.HTTP_CONNECTION_CLIENT_PROTOCOL_EXCEPTION);
			e.printStackTrace();
		} catch (ConnectTimeoutException e) {
			handler.sendEmptyMessage(Util.HTTP_CONNECTION_TIMEOUT);
			// e.printStackTrace();
		} catch (UnknownHostException e) {
			handler.sendEmptyMessage(Util.HTTP_CONNECTION_UNKONW_HOST);
		} catch (IOException e) {
			handler.sendEmptyMessage(Util.HTTP_CONNECTION_IO_EXCEPTION);
		}
		return res;
	}

上面方法中用到的getHttpClient方法

public static synchronized DefaultHttpClient getHttpClient() {
		try {
			if (defaultClient == null) {
				// Log.v(TAG, "->> httpClient is null ->> do getHttpClient");
				// 设置组件参数, HTTP协议的版本,1.1/1.0/0.9
				HttpParams params = new BasicHttpParams();
				HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
				HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
				HttpProtocolParams.setUseExpectContinue(params, true);

				// 设置连接超时时间
				int REQUEST_TIMEOUT = 15 * 1000; // 设置请求超时15秒钟
				int SO_TIMEOUT = 15 * 1000; // 设置等待数据超时时间15秒钟
				HttpConnectionParams.setConnectionTimeout(params,
						REQUEST_TIMEOUT);
				HttpConnectionParams.setSoTimeout(params, SO_TIMEOUT);
				ConnManagerParams.setTimeout(params, 1000); // 从连接池中取连接的超时时间

				// 设置访问协议
				SchemeRegistry schreg = new SchemeRegistry();
				schreg.register(new Scheme("http", PlainSocketFactory
						.getSocketFactory(), 80));
				schreg.register(new Scheme("https", SSLSocketFactory
						.getSocketFactory(), 443));

				// 使用线程安全的连接管理来创建HttpClient
				ClientConnectionManager conMgr = new ThreadSafeClientConnManager(
						params, schreg);
				defaultClient = new DefaultHttpClient(conMgr, params);
			}
			return defaultClient;
		} catch (Exception e) {
			return null;
		}

	}

在这个方法中defaultClient 字段是DefaultHttpClient对象.

在请求之后通过handler将得到的请求信息来更新页面.这里就不再贴代码了,

转载于:https://my.oschina.net/u/2438447/blog/846938

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值