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

Android HttpClient get、post 访问网络

2015-09-17 11:01 686 查看
1、get 请求

/**
* get方式请求服务器
*
* @param param 请求时包含的参数
* @return
*/
public static String get(RequestParam param) throws IOException, ServerException {
String url = param.getUrl();
if (TextUtils.isEmpty(url))
return null;
BufferedReader br = null;
try {
HttpGet get = new HttpGet(url);
HttpParams connParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(connParams, 5 * 1000);
HttpConnectionParams.setSoTimeout(connParams, 10 * 1000);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(get);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// 请求成功
HttpEntity httpEntity = response.getEntity();
br = new BufferedReader(new InputStreamReader(httpEntity.getContent(), "UTF-8"));
StringBuffer sb = new StringBuffer();
String lineStr = "";
while ((lineStr = br.readLine()) != null) {
sb.append(lineStr + "\n");
}
return sb.toString();
} else {
Log.w("HTTP", "请求服务器异常 " + response.getStatusLine().getStatusCode());
throw new ServerException("服务器异常:"+response.getStatusLine().getStatusCode());
}
} finally {
if (br != null)
br.close();
}
}


2、post 请求

/**
* post 方式请求服务器
*
* @param param 请求参数
* @return 响应 json 串
* @throws IOException 文本异常,超时等
*/
public static String post(RequestParam param) throws IOException, ServerException {
BufferedReader br = null;
String url = param.getUrl();
if (TextUtils.isEmpty(url))
return null;
try {
HttpPost post = new HttpPost(url);
HttpParams connParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(connParams, 5 * 1000);
HttpConnectionParams.setSoTimeout(connParams, 10 * 1000);
HttpClient client = new DefaultHttpClient();
List<NameValuePair> params = param.postParams();
if (params != null)
post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse response = client.execute(post);
if (response.getStatusLine().getStatusCode() == 200) {
// 请求成功
HttpEntity httpEntity = response.getEntity();
br = new BufferedReader(new InputStreamReader(httpEntity.getContent(), "UTF-8"));

4000
StringBuffer sb = new StringBuffer("");
String lineStr = "";
while ((lineStr = br.readLine()) != null) {
sb.append(lineStr + "\n");
}
return sb.toString();
} else {
Log.w("HTTP", "请求服务器异常 " + response.getStatusLine().getStatusCode());
throw new ServerException("服务器异常:" + response.getStatusLine().getStatusCode());
}
} finally {
if (br != null)
br.close();
}
}


RequestParam

/**
* 描述:网络 请求参数
*
* @author HJK
*/
public class RequestParam {
private String url;
private Map<String, Object> params;

public void put(String key, String value) {
if (params == null)
params = new HashMap<String, Object>();
params.put(key, value);
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public List<NameValuePair> postParams() {
if (params == null)
return null;
List<NameValuePair> param = new ArrayList<NameValuePair>();
for (String key:params.keySet())
param.add(new BasicNameValuePair(key, params.get(key)+""));
return param;
}

public String getParams() {
if (params == null)
return null;
StringBuffer stringBuffer = new StringBuffer();
for (String key : params.keySet()) {
stringBuffer.append(key).append("=").append(params.get(key)).append("&");
}
if(stringBuffer.length()>0)
stringBuffer.deleteCharAt(stringBuffer.length()-1);
return stringBuffer.toString();
}

public String toString() {
return params == null?null:params.toString();
}
}


ServerException

/**
* 描述:自定义异常,服务端错误
*
* @author HJK
*/
public class ServerException extends Exception {

public ServerException() {
super();
}

public ServerException(String msg) {
super(msg);
}

public ServerException(String msg, Throwable cause) {
super(msg, cause);
}

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