自己写一个发送http post请求的工具类,因为需要头部和参数,网上没有合适的,拿出来分享下
只需要传三个参数:地址,头部map,bodymap
另外响应已经将body取出并转成字符串返回

maven引入httpClient

<!-- httpClient -->
<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version>
</dependency>

代码

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Component;public String postMap(String url,Map<String,String> headerMap,Map<String, String> contentMap) {String result = null;CloseableHttpClient httpClient = HttpClients.createDefault();HttpPost post = new HttpPost(url);List<NameValuePair> content = new ArrayList<NameValuePair>();Iterator iterator = contentMap.entrySet().iterator();           //将content生成entitywhile(iterator.hasNext()){  Entry<String,String> elem = (Entry<String, String>) iterator.next();  content.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));  }CloseableHttpResponse response = null;try {Iterator headerIterator = headerMap.entrySet().iterator();          //循环增加headerwhile(headerIterator.hasNext()){  Entry<String,String> elem = (Entry<String, String>) headerIterator.next();  post.addHeader(elem.getKey(),elem.getValue());}if(content.size() > 0){  UrlEncodedFormEntity entity = new UrlEncodedFormEntity(content,"UTF-8");  post.setEntity(entity);}response = httpClient.execute(post);            //发送请求并接收返回数据if(response != null && response.getStatusLine().getStatusCode() == 200){HttpEntity entity = response.getEntity();       //获取response的body部分result = EntityUtils.toString(entity);          //读取reponse的body部分并转化成字符串}return result;} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {try {httpClient.close();if(response != null){response.close();}} catch (IOException e) {e.printStackTrace();}}return null;}

httpClient发送post请求,带header、body的工具类相关推荐

  1. Ionic+Angular+Express实现前后端交互使用HttpClient发送get请求数据并加载显示(附代码下载)

    场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...

  2. curl发送post请求带Json参数、发送get请求

    文章目录 curl发送post请求带Json参数 curl发送get请求带参数 curl 参数 curl发送post请求带Json参数 1:linux下执行curl命令发送post请求 curl -X ...

  3. Httpclient发送json请求

    一.Httpclient发送json请求 public String RequestJsonPost(String url){     String strresponse = null;     t ...

  4. HttpClient发送Https请求报 : unable to find valid certification path to requested target

    一.场景   近期在对接第三方接口时,通过HttpClient发送Https请求报 : unable to find valid certification path to requested tar ...

  5. ShareIntentUtil【调用系统自带的分享的工具类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据参考资料的文章,整理了调用系统自带分享的工具类(实现了适配7.0FileProvider的功能),需要搭配<Android ...

  6. HttpClient发送Get请求(java)【从新浪云搬运】

    直接上代码吧 public static void sendHttpGet(final String url){//发送Get请求的方法,url中已经带了需要的参数. new Thread(new R ...

  7. 爬虫 spider05——使用httpclient发送get请求、post请求

    百度解释 HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的 ...

  8. C#中通过HttpClient发送Post请求

    C#中HttpClient进行各种类型的传输 我们可以看到, 尽管PostAsync有四个重载函数, 但是接受的都是HttpContent, 而查看源码可以看到, HttpContent是一个抽象类 ...

  9. java httpclient发送json 请求 ,go服务端接收

    /***java客户端发送http请求*/package com.xx.httptest;/*** Created by yq on 16/6/27.*/import java.io.IOExcept ...

  10. 使用httpclient发送get请求

    private CloseableHttpClient httpClient = null;@BeforeClasspublic void setUpBeforeClass() {// 通过这个方法创 ...

最新文章

  1. ORACLE中的imp和exp
  2. python更改list数据类型_python3笔记十一:python数据类型-List列表
  3. Ubuntu下添加定时任务执行php文件
  4. 无人驾驶汽车之争本田为何未战先败
  5. 休眠日志:常见问题的提示和解决方案
  6. 让我们了解Set及其在JavaScript中的独特功能
  7. python爬取小说写入txt_Python BeautifulSoup 爬取笔趣阁所有的小说
  8. mui ajax的值php怎样获取,Mui-ajax获取服务器请求
  9. mysql 显示右边所有名称_查询表 - [ MySql参考手册 ] - 在线原生手册 - php中文网
  10. C#的变迁史 - C# 4.0 之多线程篇
  11. 怎样把百度图片设置成传统翻页 瀑布流与传统翻页的转换
  12. 笔记1-fedora14初识及vmware-tool安装
  13. 加速计.陀螺仪的使用
  14. 淘宝自动回复机器人配置手册——利用旺旺分流针对性配置
  15. mysqlbinlog解析工具介绍
  16. 区块链去中心化通俗的理解是什么?
  17. 地铁WIFI值28亿?运营商终于不用背锅了
  18. 体验经济时代,美妆品牌如何开好一家旗舰店
  19. 三十八、C++ 信号捕获
  20. 算法:一个长字符串中含多个连续和不连续的空格,求不含空格的最长字符串长度

热门文章

  1. 磁共振成像原理-物理基础(质子在外部磁场的情况)
  2. [独家]MIT课程笔记:数据可视化会撒谎
  3. 区块链在图书馆中应用
  4. node 简繁体转换_简体繁体转换
  5. 机械制图计算机识图,机械制图基础知识
  6. Google桌面搜索使用与技巧
  7. 界面清爽的SNS社交网络系统源码 PHP+MySQL(已整合IM聊天系统)
  8. c 上传文件路劲为服务器路径,获取上传文件的路径变成C:\fakepath\
  9. appfuse mysql_Appfuse学习笔记(1)
  10. 肯辛通VeriMark指纹识别器 驱动下载 与 安装指南(含视频教程) 型号:K67977 K64704 K62330