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请求post

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方法url

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将获得的请求信息来更新页面.这里就再也不贴代码了,code

相关文章
相关标签/搜索