客户端 网络请求封装类 --- HttpManger
来源:互联网 发布:免费路由软件 编辑:程序博客网 时间:2024/05/17 08:06
客户端进行网络请求,也是常用的一个工具类,所以封装起来用到的时候就可以使用了
package utils;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;public class HttpManager { /** * 用POST请求返回消息的方法 * @param action 地址路径 * @param par 参数键值对 * @return */ public static String doPost(String action, Map<String, String> par) { String responStr = null; try { // 1、网址 URL url = new URL(action); // 2、打开链接获取数据 HttpURLConnection con = (HttpURLConnection) url.openConnection(); // 设置请求方式为POST con.setRequestMethod("POST"); // 设置可以输入输出 con.setDoInput(true); con.setDoOutput(true); // 设置不使用缓存 con.setUseCaches(false); if (null != par) { // 将参数写到内容中 DataOutputStream out = new DataOutputStream( con.getOutputStream()); // 组装参数(对中文参数要进行) StringBuffer sb = new StringBuffer(); Iterator<Entry<String, String>> it = par.entrySet().iterator(); while (it.hasNext()) { Entry<String, String> en = it.next(); sb.append(en.getKey()).append("=") .append(URLEncoder.encode(en.getValue(), "gbk")) .append("&"); } // name=abc&psw=123&sex=n& int len = sb.length(); // 删除最后一个&符号 sb.delete(len - 1, len); // name=abc&psw=123&sex=n // 将参数写到请求内容中,提交到服务端 out.writeBytes(sb.toString()); out.flush(); } // 获取服务端返回的数据 con.connect(); // 再次确认连接 if (con.getResponseCode() == 200) { BufferedReader br = new BufferedReader(new InputStreamReader( con.getInputStream())); // 如果返回的内容很多,那么可以全部拼接起来再处理 StringBuffer result = new StringBuffer(); String str; while ((str = br.readLine()) != null) { result.append(str); } responStr = result.toString(); br.close(); } // 3、关闭链接 con.disconnect(); } catch (Exception e) { e.printStackTrace(); } return responStr; } /** * 用GEt请求返回的消息的方法 * @param path 地址路径 */ public static String doGet(String path){ StringBuffer result=new StringBuffer(); try { //新建网址 URL url=new URL(path); //打开链接 HttpURLConnection con=(HttpURLConnection)url.openConnection(); //配置打开方法 con.setRequestMethod("GET"); //判断返回信息 if(con.getResponseCode()==200){ //处理服务器传来的信息 BufferedReader br=new BufferedReader(new InputStreamReader(con.getInputStream())); String str; while((str=br.readLine())!=null){ result.append(str); } br.close(); } //关闭链接 con.disconnect(); } catch (Exception e) { e.printStackTrace(); } return result.toString(); }}
阅读全文
0 0
- 客户端 网络请求封装类 --- HttpManger
- asihttprequest 网络请求类封装
- iOS 网络请求类封装
- 封装网络请求工具类
- XUtils网络请求封装类
- 网络请求封装类lmxHttpUrlConnection
- OkHttp网络请求封装类
- ios 网络请求数据封装类
- ios中封装网络请求类
- ios中封装网络请求类
- ios中封装网络请求类
- 利用block封装网络请求类
- 自定义UI 网络 请求类的封装
- 基于AFNetWoring 封装的网络请求类
- 封装好的网络请求类
- ios中封装网络请求类
- Android网络请求HttpUtil封装工具类
- Okhttp网络请求的封装类
- BZOJ 1082 [SCOI2005]栅栏 二分+DFS
- ftp上传工具类
- 递归与回溯
- jQuery学习
- 【SSLGZ 2790】2017年10月25日提高组T2 次方的运算
- 客户端 网络请求封装类 --- HttpManger
- java长链接转短链接代码
- MySQL 5.6 (Win7 64位)下载、安装与配置图文教程
- LIS问题(最长递增子序列)
- 顺时针、逆时针两种方式减小的倒计时动画
- .编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
- ACdream 1015 A
- 简单高精度减法
- 按钮布局