HttpUtil---网络请求工具类
2014-10-08 11:02
148 查看
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; } }
相关文章推荐
- 网络请求的工具类
- 基于AFNetworking封装的网络请求工具类【原创】
- android发网络请求工具类
- [Java语言] Java网络请求工具类
- [置顶] Android开发之java代码工具类。判断当前网络是否连接并请求下载图片
- 网络请求get/post工具类:NetUtil
- 网络请求以及网络请求下载图片的工具类 android开发java工具类
- 封装网络请求工具类
- 网络请求工具类
- Android-async-http 网络请求框架(工具类)
- 网络连接底层工具类,执行get和post请求(用于在一个项目中去对另外项目发出请求)
- NetWorkTool工具类之网络请求
- 获取网络下载请求工具类
- iOS开发—封装网络请求工具类
- HttpUrlConnection 网络请求工具类
- 利用线程池实现Android客户端的http网络数据请求工具类
- android解析JSON,XML数据的请求网络工具类
- 基于AFNetworking封装的网络请求工具类
- [置顶] 网络请求以及网络请求下载图片的工具类 android开发java工具类
- Android网络请求,Get方式请求,HttpURLConnection请求工具类