java 原生java.net.Url POST请求

1.关键代码

  • 请求链接 URL u = new URL(“http://www.bowen-tech.top“);
  • 设置发送数据的格式为form表单 conn.setRequestProperty(“Content-Type”, “application/x-www-form-urlencoded; charset=UTF-8”);
  • 设置是否向connection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true connection.setDoOutput(true);
  • 防止乱码,设置编码为UTF-8
    BufferedReader in = new BufferedReader( new InputStreamReader(conn.getInputStream(), “utf-8”));
  1. public static String getPost(Map<String, Object> params) throws Exception {
  2. //请求链接
  3. URL u = new URL("http://www.bowen-tech.top");
  4. //获取连接对象
  5. HttpURLConnection conn=(HttpURLConnection) u.openConnection();
  6. conn.setRequestProperty("Accept", "application/json, text/javascript, */*; q=0.01");
  7. conn.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0))");
  8. conn.setRequestProperty("Referer"," http://www.bowen-tech.top");
  9. conn.setRequestProperty("Cookie", "");
  10. conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); // 设置发送数据的格式为form表单
  11. conn.setRequestProperty("timeout","3000");
  12. conn.setDoOutput(true);
  13. conn.setRequestMethod("POST"); // 设置请求方式
  14. // 打开请求正文输出流
  15. OutputStream os = conn.getOutputStream();
  16. // 写入输出数据,刷新缓存,关闭输出流
  17. // StringBuilder content = "字段名=" + URLEncoder.encode("字符串值", "编码");
  18. StringBuilder content = new StringBuilder();
  19. for (String key : params.keySet()) {
  20. content.append(key+"="+ params.get(key)+"&");
  21. }
  22. System.out.println(content.toString());
  23. os.write(content.toString().getBytes());
  24. os.flush();
  25. os.close();
  26. // 7. 发起请求并获取请求响应状态码
  27. int responseCode = conn.getResponseCode();
  28. StringBuffer sb=new StringBuffer();
  29. //获取输入流
  30. BufferedReader in = new BufferedReader( new InputStreamReader(conn.getInputStream(), "utf-8"));
  31. String line = "";
  32. while ((line = in.readLine()) != null) {
  33. sb.append(line);
  34. }
  35. in.close();
  36. System.out.println(sb.toString());
  37. return sb.toString();
  38. }