您的位置:首页 > 理论基础 > 计算机网络

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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: