需求:

最近在网上找了一个weixin的工具包,但是利用在post提交的时候总是出错,看了下weixin工具包里面的提交方式是采用httpPost,于是自己也写了一个专门用于提交数据的工具类

package com.wx.common;import java.io.IOException;
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.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
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.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;import com.riversoft.weixin.common.exception.WxError;
import com.riversoft.weixin.common.exception.WxRuntimeException;public class HttpUtils {private static String charset = "utf-8";private static HttpClient httpClient = HttpClients.createDefault();@SuppressWarnings({ "unchecked", "rawtypes" })public static String doPost(String url, Map<String, String> map) {HttpPost httpPost = null;String result = null;try {httpPost = new HttpPost(url);// 设置参数List<NameValuePair> list = new ArrayList<NameValuePair>();Iterator iterator = map.entrySet().iterator();while (iterator.hasNext()) {Entry<String, String> elem = (Entry<String, String>) iterator.next();list.add(new BasicNameValuePair(elem.getKey(), elem.getValue()));}if (list.size() > 0) {UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset);httpPost.setEntity(entity);}HttpResponse response = httpClient.execute(httpPost);if (response != null) {HttpEntity resEntity = response.getEntity();if (resEntity != null) {result = EntityUtils.toString(resEntity, charset);}}} catch (Exception ex) {ex.printStackTrace();}return result;}public static String doGet(String url) {HttpGet httpGet = new HttpGet(url);try (CloseableHttpResponse response = (CloseableHttpResponse) httpClient.execute(httpGet)) {StatusLine statusLine = response.getStatusLine();HttpEntity entity = response.getEntity();if (statusLine.getStatusCode() >= 300) {EntityUtils.consume(entity);throw new WxRuntimeException(statusLine.getStatusCode(), statusLine.getReasonPhrase());}String responseContent = entity == null ? null : EntityUtils.toString(entity, Consts.UTF_8);WxError wxError = WxError.fromJson(responseContent);if (wxError.getErrorCode() != 0) {throw new WxRuntimeException(wxError);}return responseContent;} catch (IOException ex) {throw new WxRuntimeException(999, ex.getMessage());}}
}

Java利用HttpPost工具类提交数据相关推荐

  1. Java封装OkHttp3工具类

    点击关注公众号,Java干货及时送达  作者:如漩涡 https://blog.csdn.net/m0_37701381 Java封装OkHttp3工具类,适用于Java后端开发者 说实在话,用过挺多 ...

  2. Java 利用ffmpeg工具实现视频MP4转m3u8

    Java 利用ffmpeg工具实现视频MP4转m3u8(一) 前言 (一)ffmpeg工具转码 1.如何安装ffmpeg工具 2.如何使用ffmpeg工具进行视频转码 (二)播放m3u8文件 1.vi ...

  3. java轻量级并行工具类_16 个超级实用的 Java 工具类

    原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...

  4. 利用hutool工具类导出Excel

    简单介绍 可以使用hutool工具类,简单的生成Excel.本质上还是使用的POI组件,只是对其进行了封装,避免开发人员重复造轮子 hutool工具类链接 maven导入 <!-- hutool ...

  5. java基于HuTool工具类ExcelWriter合并单元格

    ** java基于HuTool工具类ExcelWriter合并单元格 ** 1.基于HuTool工具类ExcelWriter合并单元格并且使用 jdk1.8 lambda表达式 效果如下: 用姓名和编 ...

  6. Java 利用hutool工具实现导出excel并合并单元格

    Java 利用hutool工具实现导出excel并合并单元格 controller层调用service,就一个核心方法,没错就下面这个代码就能实现了.前提是项目里面要引用hutool包.把我这个复制到 ...

  7. Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类

    Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类 =========================== ©Copyright 蕃薯耀 2017年9月22日 http://fansh ...

  8. Java导入Excel工具类使用教程

    前言: 本工具类提供了Excel导入功能,通过反射机制将Excel中数据映射到实体类中,从而获取Excel数据,工具类依赖org.apache.poi包.支持RESTful API,支持Spring ...

  9. Java 时间间隔计算工具类

    Java 时间间隔计算工具类 一.工具类-DateIntervalUtil package com.example.demotest.util;import java.text.DecimalForm ...

  10. Java实现AES工具类(包含CBC和ECB)

    目录 一.简介 二.AES工具类 三.实践 3.1 AES之ECB模式加密 3.2 AES之ECB模式解密 3.3 AES之CBC模式加密 3.4 AES之CBC模式解密 结语 一.简介   密码学中 ...

最新文章

  1. JS得到对应字段 的值。遍历
  2. 利用配置编辑器改变Ubuntu10按钮位置
  3. windows_7_64位下配置mysql64位免安装版
  4. 中国人民大学_《组织行为学》_16.重塑组织模块导论
  5. Oracle笔记之表空间
  6. 1704:baoge的洗漱难题[黄]
  7. PopStar(消灭星星)游戏源代码下载、分析及跨平台移植---第四篇(关卡)
  8. 2018 年,新手前端是否真的很难找工作?
  9. 带图标显示的ls---lsd
  10. 面试- 阿里-. 大数据题目- 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?...
  11. 1. 拼多多什么软件可以看到大数据?拼多多大数据分析软件有哪些?
  12. 使用母版页实现页面布局
  13. 大数据技术之Hadoop(HDFS)第2章 HFDS的Shell操作
  14. 英国诺丁汉大学的AIMS与虚拟现实技术
  15. SPM软件的参考资料链接
  16. 随性随笔_201508
  17. VBA脚本查找AS400 DSPMSG任务执行状态
  18. unity3d天空盒
  19. 【2018VR眼镜牌子排行榜推荐】UGP VR 、HTC vive、索尼PSVR哪个性价比高?什么VR眼镜好,来看看
  20. ubuntu安装Qt creator

热门文章

  1. matlab神经网络
  2. 通过腾讯地图查询经纬度及相关信息
  3. java音量调节_音量控制setVolumeControlStream
  4. 广域网、城域网及局域网技术
  5. VASP_Si的能带结构计算_步骤整理
  6. 2022年3月22日
  7. 新浪视频播放器站外调用代码
  8. 轻巧和实用并存——360安全卫士极速版试用报告
  9. 实现原理 扫描枪_激光条码扫描枪原理及五大组成部分!
  10. linux 常用软件推荐