参考 :

java http 发送post请求-json格式_Oh_go_boy的博客-CSDN博客

Java发送Http请求 - 玄同太子 - 博客园

org.apache.http 在Maven中引入依耐包提示不存在的问题_奋斗鱼-CSDN博客

maven依赖

        <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpmime</artifactId><version>4.5</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.4.1</version></dependency>

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;/*** 发送HTTP请求*/
public class SendRequestUtils {public static void main(String[] args) {System.err.println(sendPostJson("http://127.0.0.1:8080/test", "{\n" +"\t\"name\": \"12\",\n" +"\t\"age\": \"12\"\n" +"}"));}/*** 发送GET请求* @param url* @return*/public static String sendGet(String url) {try {CloseableHttpClient client = null;CloseableHttpResponse response = null;try {HttpGet httpGet = new HttpGet(url);client = HttpClients.createDefault();response = client.execute(httpGet);HttpEntity entity = response.getEntity();String result = EntityUtils.toString(entity,"utf-8");// 中文乱码 result = new String(result.getBytes("ISO8859_1"), "UTF-8");return result;} finally {if (response != null) {response.close();}if (client != null) {client.close();}}} catch (Exception e) {e.printStackTrace();}return null;}/*** 向指定URL发送GET方法的请求(有点问题)** @param url   发送请求的URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return URL 所代表远程资源的响应结果*/public static String sendGet(String url, String param) {String result = "";BufferedReader in = null;try {String urlNameString = url + "?" + param;if (param == null) {urlNameString = url;}URL realUrl = new URL(urlNameString);// 打开和URL之间的连接URLConnection connection = realUrl.openConnection();// 设置通用的请求属性connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 建立实际的连接connection.connect();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {System.out.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}System.out.println(result);} catch (Exception e) {System.out.println("发送GET请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输入流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}/*** 向指定 URL 发送POST方法的请求** @param url   发送请求的 URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return 所代表远程资源的响应结果*/public static String sendPost(String url, String param) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(param);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送 POST 请求出现异常!" + e);e.printStackTrace();}//使用finally块来关闭输出流、输入流finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}/*** POST 发送json数据** @param url* @param json* @return*/public static String sendPostJson(String url, String json) {CloseableHttpClient client = HttpClientBuilder.create().build();HttpPost post = new HttpPost(url);String result = null;try {StringEntity s = new StringEntity(json, "utf-8");s.setContentEncoding("UTF-8");//发送json数据需要设置contentTypes.setContentType("application/json");post.setEntity(s);HttpResponse res = client.execute(post);result = EntityUtils.toString(res.getEntity(),"utf-8");} catch (Exception e) {e.printStackTrace();} finally {try {client.close();} catch (IOException e) {}}return result;}
}

注: 若返回值乱码 可添加参数 "UTF-8"

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

JSON maven坐标

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.25</version></dependency>

Java 常用工具类(12) : java后台发送http请求相关推荐

  1. java常用工具类和Hutool常用的工具类整理

    java常用工具类和Hutool常用的工具类整理 1.java常用工具类 1.1 Scanner类 /*** Scanner 类*/@Testpublic void testScanner() {Sc ...

  2. Java常用工具类StringUtils的常用方法

    Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...

  3. Java常用工具类JsonUtils

    Java常用工具类JsonUtils 一.项目添加pom文件 <dependency><groupId>com.google.code.gson</groupId> ...

  4. JAVA常用工具类(实用高效)

    JAVA常用工具类(根据GITHUB代码统计) 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料,但是很少有人去关注一些小的工具包,但 ...

  5. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  6. Hutool Java常用工具类汇总

    简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...

  7. 项目经验分享——Java常用工具类集合 转

    http://blog.csdn.net/xyw591238/article/details/51678525 写在前面 本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接 ...

  8. java 常用工具类的使用一

    1. Java工具概述 很多人初学程序时,总是在想,那么多的算法该怎么写呀?那么多的数据结构都不熟悉,该怎么实现呀?总是担心英语不好程序学不精通,数学不好写程序无法达到巅峰.学的程序越多,不懂的知识越 ...

  9. Java常用工具类整合

    JSON转换工具 package com.taotao.utils;import java.util.List;import com.fasterxml.jackson.core.JsonProces ...

最新文章

  1. 英特尔又做了一个违背祖宗的决定:布局RISC-V
  2. 从功能、交互、性能全方位解读,BI工具FineBI4.0.2测评报告
  3. trunk口_南京课工场IT培训:VLAN、Trunk与三层交换机的相关理论知识
  4. 如何理解有人说“真正的奇石收藏,从做减法开始”?
  5. Microsoft SQL Server 2008 All-in-One Desk Reference For Dummies 读书笔记之六
  6. Application和Console Application
  7. linux 物理内存 查看,Linux查看物理内存信息
  8. 142. 环形链表 II AND 633. 平方数之和
  9. SQL获取两个日期之间的天数
  10. 内核驱动 (二)Linux按键驱动分析
  11. java jp2launcher.exe_atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
  12. 通信端口感叹号_PCI简易通讯控制器有黄色感叹号怎么办?
  13. arcgis怎么生成一个html,arcgis desktop 10.x怎么生成1:100万、1:50万等标准图幅经纬网格...
  14. js本地预览图片和转base64
  15. 竣达技术丨多台精密空调微信云监控方案
  16. Google 收购摩托罗拉移动将会对全球手机市场格局带来哪些深远影响?
  17. js-对象属性是否全部为空
  18. 折叠屏已经不新鲜了,明天你可能会用上“伸缩屏幕”!
  19. PyQt5+socket+多线程,实现简单聊天室
  20. 非常好看notepad++主题和字体

热门文章

  1. java 搞笑翻译,哎吗,这个库太搞笑了,我一定要翻译一下
  2. HDFS垃圾回收-数据恢复
  3. php 数组去除相同元素,php如何去除数组的重复元素
  4. 流水的“互联网老公”,铁打的女性消费
  5. python当前时间加一分钟,在python中向时间戳添加分钟
  6. python 类构造函数_Python构造函数创建类对象
  7. 实战PyQt5:090-处理一个QPaintDevice错误
  8. Dfine 2 降噪滤镜
  9. 乘法原理的例题和答案_小学四年级奥数乘法原理练习题及答案
  10. python中可选参数和可变参数_Python函数中的可变长参数详解