httpClient发送post请求,带header、body的工具类
自己写一个发送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的工具类相关推荐
- Ionic+Angular+Express实现前后端交互使用HttpClient发送get请求数据并加载显示(附代码下载)
场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...
- curl发送post请求带Json参数、发送get请求
文章目录 curl发送post请求带Json参数 curl发送get请求带参数 curl 参数 curl发送post请求带Json参数 1:linux下执行curl命令发送post请求 curl -X ...
- Httpclient发送json请求
一.Httpclient发送json请求 public String RequestJsonPost(String url){ String strresponse = null; t ...
- HttpClient发送Https请求报 : unable to find valid certification path to requested target
一.场景 近期在对接第三方接口时,通过HttpClient发送Https请求报 : unable to find valid certification path to requested tar ...
- ShareIntentUtil【调用系统自带的分享的工具类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据参考资料的文章,整理了调用系统自带分享的工具类(实现了适配7.0FileProvider的功能),需要搭配<Android ...
- HttpClient发送Get请求(java)【从新浪云搬运】
直接上代码吧 public static void sendHttpGet(final String url){//发送Get请求的方法,url中已经带了需要的参数. new Thread(new R ...
- 爬虫 spider05——使用httpclient发送get请求、post请求
百度解释 HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的 ...
- C#中通过HttpClient发送Post请求
C#中HttpClient进行各种类型的传输 我们可以看到, 尽管PostAsync有四个重载函数, 但是接受的都是HttpContent, 而查看源码可以看到, HttpContent是一个抽象类 ...
- java httpclient发送json 请求 ,go服务端接收
/***java客户端发送http请求*/package com.xx.httptest;/*** Created by yq on 16/6/27.*/import java.io.IOExcept ...
- 使用httpclient发送get请求
private CloseableHttpClient httpClient = null;@BeforeClasspublic void setUpBeforeClass() {// 通过这个方法创 ...
最新文章
- ORACLE中的imp和exp
- python更改list数据类型_python3笔记十一:python数据类型-List列表
- Ubuntu下添加定时任务执行php文件
- 无人驾驶汽车之争本田为何未战先败
- 休眠日志:常见问题的提示和解决方案
- 让我们了解Set及其在JavaScript中的独特功能
- python爬取小说写入txt_Python BeautifulSoup 爬取笔趣阁所有的小说
- mui ajax的值php怎样获取,Mui-ajax获取服务器请求
- mysql 显示右边所有名称_查询表 - [ MySql参考手册 ] - 在线原生手册 - php中文网
- C#的变迁史 - C# 4.0 之多线程篇
- 怎样把百度图片设置成传统翻页 瀑布流与传统翻页的转换
- 笔记1-fedora14初识及vmware-tool安装
- 加速计.陀螺仪的使用
- 淘宝自动回复机器人配置手册——利用旺旺分流针对性配置
- mysqlbinlog解析工具介绍
- 区块链去中心化通俗的理解是什么?
- 地铁WIFI值28亿?运营商终于不用背锅了
- 体验经济时代,美妆品牌如何开好一家旗舰店
- 三十八、C++ 信号捕获
- 算法:一个长字符串中含多个连续和不连续的空格,求不含空格的最长字符串长度
热门文章
- 磁共振成像原理-物理基础(质子在外部磁场的情况)
- [独家]MIT课程笔记:数据可视化会撒谎
- 区块链在图书馆中应用
- node 简繁体转换_简体繁体转换
- 机械制图计算机识图,机械制图基础知识
- Google桌面搜索使用与技巧
- 界面清爽的SNS社交网络系统源码 PHP+MySQL(已整合IM聊天系统)
- c 上传文件路劲为服务器路径,获取上传文件的路径变成C:\fakepath\
- appfuse mysql_Appfuse学习笔记(1)
- 肯辛通VeriMark指纹识别器 驱动下载 与 安装指南(含视频教程) 型号:K67977 K64704 K62330