HttpUtil---网络请求工具类


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
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.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.StrictMode;

public class HttpUtil {
	public   int getVerCode(Context context) {
		int verCode = -1;
		try {
			verCode = context.getPackageManager().getPackageInfo("org.dc", 0).versionCode;
		} catch (NameNotFoundException e) {
		}
		return verCode;
	}

	public   String getVerName(Context context) {
		String verName = "";
		try {
			verName = context.getPackageManager().getPackageInfo("org.dc", 0).versionName;
		} catch (NameNotFoundException e) {
		}
		return verName;
	}

	public static HttpGet getHttpGet(String url) {
		HttpGet request = new HttpGet(url);
		return request;
	}

	public   HttpPost getHttpPost(String url) {
		HttpPost request = new HttpPost(url);
		return request;
	}

	public   HttpResponse getHttpResponse(HttpGet request)
			throws ClientProtocolException, IOException {
		HttpResponse response = new DefaultHttpClient().execute(request);
		return response;
	}

	public   HttpResponse getHttpResponse(HttpPost request)
			throws ClientProtocolException, IOException {
		HttpResponse response = new DefaultHttpClient().execute(request);
		return response;
	}

	public String queryStringForPost(String url, Context context) {
		HttpClient httpClient = new DefaultHttpClient();

		prepareProxy(httpClient, context);

		HttpPost request = getHttpPost(url);

		String result = null;
		try {
			HttpResponse response = httpClient.execute(request);
			if (response.getStatusLine().getStatusCode() == 200) { // 200
																	// OK:一切正常,
				result = EntityUtils.toString(response.getEntity());
				return result;
			}
		} catch (ClientProtocolException e) {
			e.printStackTrace();
			result = "网络异常";
			return result;
		} catch (IOException e) {
			e.printStackTrace();
			result = "网络异常";
			return result;
		}
		return null;
	}

	public String queryStringForPost2(HttpPost request, Context context) {
		HttpClient httpClient = new DefaultHttpClient();

		prepareProxy(httpClient, context);

		String result = null;
		try {
			HttpResponse response = httpClient.execute(request);
			if (response.getStatusLine().getStatusCode() == 200) {
				result = EntityUtils.toString(response.getEntity());
				return result;
			}
		} catch (ClientProtocolException e) {
			e.printStackTrace();
			result = "网络异常";
			return result;
		} catch (IOException e) {
			e.printStackTrace();
			result = "网络异常";
			return result;
		}
		return null;
	}

	public String queryStringForPost3(String url, List<NameValuePair> values) {
		String resultString = null;
		HttpPost hPost = new HttpPost(url);

		HttpEntity entity;
		try {
			// 设置HTTP POST请求参数
			entity = new UrlEncodedFormEntity(values, "UTF-8");
			hPost.setEntity(entity);
		} catch (UnsupportedEncodingException e) {

			e.printStackTrace();
		}
		HttpClient hc = new DefaultHttpClient();
		HttpResponse response;
		try {
			response = hc.execute(hPost);
			HttpEntity entity1 = response.getEntity();
			InputStream is = entity1.getContent();
			BufferedReader bReader = new BufferedReader(new InputStreamReader(
					is));
			resultString = bReader.readLine();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return resultString;
	}

	public   String queryStringForGet(String url) {
		HttpGet request = HttpUtil.getHttpGet(url);
		String result = null;
		try {
			HttpResponse response = getHttpResponse(request);
			if (response.getStatusLine().getStatusCode() == 200) {
				result = EntityUtils.toString(response.getEntity());
				return result;
			}
		} catch (ClientProtocolException e) {
			e.printStackTrace();
			result = "网络异常";
			return result;
		} catch (IOException e) {
			e.printStackTrace();
			result = "网络异常";
			return result;
		}
		return null;
	}

	public boolean isConnect(Context context) {
		// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
		try {
			ConnectivityManager connectivity = (ConnectivityManager) context
					.getSystemService(Context.CONNECTIVITY_SERVICE);
			if (connectivity != null) {
				// 获取网络连接管理的对象
				NetworkInfo info = connectivity.getActiveNetworkInfo();
				if (info != null && info.isConnected()) {
					// 判断当前网络是否已经连接
					if (info.getState() == NetworkInfo.State.CONNECTED) {
						return true;
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}

	@SuppressLint("NewApi")
	public void setNetWork() {
		StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
				.detectDiskReads().detectDiskWrites().detectNetwork()
				.penaltyLog().build());
		StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
				.detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()
				.build());
	}

	public   boolean prepareProxy(HttpClient httpClient, Context context) {
		ConnectivityManager connectivity = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (connectivity == null) {
			return false;
		}
		NetworkInfo info = connectivity.getActiveNetworkInfo();
		if (info == null || !info.isConnected()
				|| info.getState() != NetworkInfo.State.CONNECTED
				|| info.getTypeName() == null
				|| "WIFI".equals(info.getTypeName().toUpperCase())) {
			return false;
		}
		Uri uri = Uri.parse("content://telephony/carriers/preferapn");
		Cursor cr = null;
		try {
			cr = context.getContentResolver()
					.query(uri, null, null, null, null);
			if (cr != null && cr.moveToNext()) {
				String strProxy = cr.getString(cr.getColumnIndex("proxy"));
				String strPort = cr.getString(cr.getColumnIndex("port"));
				if (strProxy != null && !"".equals(strProxy)) {
					HttpHost proxy = new HttpHost(strProxy,
							Integer.valueOf(strPort));
					httpClient.getParams().setParameter(
							ConnRoutePNames.DEFAULT_PROXY, proxy);
					return true;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (cr != null) {
				cr.close();
			}
		}
		return false;
	}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值