A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

java中经常会用到模拟http请来发送各种消息,比如说,有get请求,post请求,post请求的参数又包括一般参数和json参数,

http工具代码如下:



  • import java.io.BufferedReader;



  • import java.io.IOException;



  • import java.io.InputStreamReader;



  • import java.io.PrintWriter;



  • import java.util.List;



  • import java.util.Map;



  • /**



  • * @author  编码小王子



  • * @date    2018年5月25日 下午6:17:31



  • * @version 1.0   



  • */



  • public class HttpUtils {



  •      // 发送GET请求



  •     public static String sendGet(String url, Map<String, String> parameters) {



  •         String result = "";



  •         BufferedReader in = null;// 读取响应输入流



  •         StringBuffer sb = new StringBuffer();// 存储参数



  •         String params = "";// 编码之后的参数



  •         try {



  •             // 编码请求参数



  •             if (parameters.size() == 1) {



  •                 for (String name : parameters.keySet()) {



  •                     sb.append(name).append("=").append(java.net.URLEncoder.encode(parameters.get(name), "UTF-8"));



  •                 }



  •                 params = sb.toString();



  •             } else {



  •                 for (String name : parameters.keySet()) {



  •                     sb.append(name).append("=").append(java.net.URLEncoder.encode(parameters.get(name), "UTF-8")).append("&");



  •                 }



  •                 String temp_params = sb.toString();



  •                 params = temp_params.substring(0, temp_params.length() - 1);



  •             }



  •             String full_url = url + "?" + params;



  •             System.out.println(full_url);



  •             // 创建URL对象



  •             java.net.URL connURL = new java.net.URL(full_url);



  •             // 打开URL连接



  •             java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL.openConnection();



  •             // 设置通用属性



  •             httpConn.setRequestProperty("Accept", "*/*");



  •             httpConn.setRequestProperty("Connection", "Keep-Alive");



  •             httpConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");



  •             // 建立实际的连接



  •             httpConn.connect();



  •             // 响应头部获取



  •             Map<String, List<String>> headers = httpConn.getHeaderFields();



  •             // 遍历所有的响应头字段



  •             for (String key : headers.keySet()) {



  •                 System.out.println(key + "\t:\t" + headers.get(key));



  •             }



  •             // 定义BufferedReader输入流来读取URL的响应,并设置编码方式



  •             in = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8"));



  •             String line;



  •             // 读取返回的内容



  •             while ((line = in.readLine()) != null) {



  •                 result += line;



  •             }



  •         } catch (Exception e) {



  •             e.printStackTrace();



  •         } finally {



  •             try {



  •                 if (in != null) {



  •                     in.close();



  •                 }



  •             } catch (IOException ex) {



  •                 ex.printStackTrace();



  •             }



  •         }



  •         return result;



  •     }







  •      //发送POST请求



  •     public static String sendPost(String url, Map<String, String> parameters) {



  •         String result = "";// 返回的结果



  •         BufferedReader in = null;// 读取响应输入流



  •         PrintWriter out = null;



  •         StringBuffer sb = new StringBuffer();// 处理请求参数



  •         String params = "";// 编码之后的参数



  •         try {



  •             // 编码请求参数



  •             if (parameters.size() == 1) {



  •                 for (String name : parameters.keySet()) {



  •                     sb.append(name).append("=").append(java.net.URLEncoder.encode(parameters.get(name), "UTF-8"));



  •                 }



  •                 params = sb.toString();



  •             } else {



  •                 for (String name : parameters.keySet()) {



  •                     sb.append(name).append("=").append(java.net.URLEncoder.encode(parameters.get(name), "UTF-8"))



  •                             .append("&");



  •                 }



  •                 String temp_params = sb.toString();



  •                 params = temp_params.substring(0, temp_params.length() - 1);



  •             }



  •             // 创建URL对象



  •             java.net.URL connURL = new java.net.URL(url);



  •             // 打开URL连接



  •             java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL.openConnection();



  •             // 设置通用属性



  •             httpConn.setRequestProperty("Accept", "*/*");



  •             httpConn.setRequestProperty("Connection", "Keep-Alive");



  •             httpConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");



  •             // 设置POST方式



  •             httpConn.setDoInput(true);



  •             httpConn.setDoOutput(true);



  •             // 获取HttpURLConnection对象对应的输出流



  •             out = new PrintWriter(httpConn.getOutputStream());



  •             // 发送请求参数



  •             out.write(params);



  •             // flush输出流的缓冲



  •             out.flush();



  •             // 定义BufferedReader输入流来读取URL的响应,设置编码方式



  •             in = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8"));



  •             String line;



  •             // 读取返回的内容



  •             while ((line = in.readLine()) != null) {



  •                 result += line;



  •             }



  •         } catch (Exception e) {



  •             e.printStackTrace();



  •         } finally {



  •             try {



  •                 if (out != null) {



  •                     out.close();



  •                 }



  •                 if (in != null) {



  •                     in.close();



  •                 }



  •             } catch (IOException ex) {



  •                 ex.printStackTrace();



  •             }



  •         }



  •         return result;



  •     }



  • }


二,如何调用

1,发送GET请求



  • Map<String,String> params = new HashMap<String,String>();



  • params.put("user", "lgg");



  • String result = HttpUtils.sendGet("https://mp.csdn.net/postedit", params);



  • System.out.println("结果是:"+result);


2,发送POST一般请求



  • Map<String,String> params = new HashMap<String,String>();



  • params.put("user", "lgg");



  • String result = HttpUtils.sendPost("https://mp.csdn.net/postedit", params);



  • System.out.println("结果是:"+result);


3,发送POST的json请求



  • User user = new User();



  • user.setName("张三");



  • user.setAge(18);



  • Map<String,String> params = new HashMap<String,String>();



  • params.put("queryJson", JSON.toJSONString(user));



  • String result = HttpUtils.sendPost("https://mp.csdn.net/postedit", params);



  • System.out.println("结果是:"+result);


【转载】原文地址:https://blog.csdn.net/u011900448/article/details/80599938

2 个回复

倒序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马