Android HttpClient get、post 访问网络
2015-09-17 11:01
686 查看
1、get 请求
2、post 请求
RequestParam
ServerException
/** * 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); } }
相关文章推荐
- Nmcli 网络管理命令行工具基础
- OSI各层功能和TCPIP协议族的对应协议
- Android HttpURLConnection get、post 访问网络
- https 简单介绍
- How to get spring application context object reference? - See more at: http://www.java2novice.com/sp
- BP神经网络基本原理
- C/C++中static,const,inline三种关键字的总结(参照网络)
- Xcode7 网络请求报错:The resource could not be loaded because the App Transport Security policy requir
- 运用神经网络方法找寻集成学习中的最优权重
- 深入浅出LSTM神经网络
- 训练深度神经网络的时候需要注意的一些小技巧
- 一文读懂卷积神经网络
- 神经网络简史
- “.网络”域名总量TOP12:排名无变化 新网夺冠
- Android各大网络请求库的比较及实战
- 服务器网络错误排查
- 少走弯路的十条忠告-http://www.cnblogs.com/xdp-gacl/p/3952405.html孤傲苍狼的博客
- HttpUtil
- PHP版本--HTTP session cookie原理及应用
- OSI各层数据名称