当前位置: 首页 > news >正文

Java工具类--http请求-post

支持各类型报文与参数说明

说明:

  • url : 地址
  • timeout:超时时间 如3秒 3*1000
  • contentType:类型 如
    • application/x-www-form-urlencoded 
    • application/json
    • application/xml
  • requestBody:报文内容 如 
    • application/x-www-form-urlencoded时 为 "key=value&key2=value2"
    • application/json时 为 " \"key\":\"value\",  \"key2\":\"value2\" "
    • application/xml时 为 "<?xml version=\"1.0\" encoding=\"utf-8\" ?><request>" + "<head>" + str_head + "</head>" + "<body>" + str_body + "</body>" + "</request>"
  • encoding:字符编码 如 utf-8
public static String postJsonBody(String url, int timeout, String contentType, String requestBody, String encoding){HttpPost post = new HttpPost(url);try {post.setHeader("Content-type", contentType);RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeout).setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).setExpectContinueEnabled(false).build();post.setConfig(requestConfig);post.setEntity(new StringEntity(requestBody, encoding));logger.info("[HttpUtils Post] begin invoke url:" + url + " , params:" + requestBody);CloseableHttpResponse response = httpclient.execute(post);try {HttpEntity entity = response.getEntity();try {if(entity != null){String str = EntityUtils.toString(entity, encoding);logger.info("[HttpUtils Post]Debug response, url :" + url + " , response string :"+str);return str;}} finally {if(entity != null){entity.getContent().close();}}} finally {if(response != null){response.close();}}} catch (UnsupportedEncodingException e) {logger.error("UnsupportedEncodingException", e);} catch (Exception e) {logger.error("Exception", e);} finally {post.releaseConnection();}return "";}

http://www.lryc.cn/news/158490.html

相关文章:

  • HTTP【总结】
  • 统计子岛屿
  • docker介绍、安装及卸载
  • 【EI/SCOPUS会议征稿】第二届环境遥感与地理信息技术国际学术会议(ERSGIT 2023)
  • LabVIEW应用开发——LabVIEW2019保姆级介绍、安装、第一个程序
  • 《TCP/IP网络编程》阅读笔记--Timewait状态和Nagle算法
  • Python常用IDE选择与安装
  • Docker从认识到实践再到底层原理(三)|Docker在Centos7环境下的安装和配置
  • Jmeter系列-Jmeter面板介绍和常用配置(2)
  • 2023高教社杯数学建模D题思路分析 - 圈养湖羊的空间利用率
  • 自动部署工具PM2
  • 软考高级系统架构设计师系列案例考点专题三:数据库系统考点梳理及精讲
  • 【 XXL-JOB】 XXL-JOB任务分片
  • RK3568开发笔记-SATA接口调试
  • 异步编程 - 09 Spring框架中的异步执行_@Async注解异步执行原理源码解析
  • django-项目
  • 红日靶场五(vulnstack5)渗透分析
  • 掌握Gitflow的一些进阶用法
  • 算法随笔:各种经典最短路算法的简要比较总结
  • concrt140.dll怎么下载,concrt140.dll修复工具(修复精灵下载)一键修复问题
  • 自行实现字符串转浮点数函数atof()
  • Windows平台Fortran编程入门
  • 05-Mysql夺命三连问:什么是索引下推?什么是索引覆盖?什么是回表?【Java面试总结】
  • 晨启,MSP430开发板,51开发板,原理图,PCB图
  • Notepad++ 的安装及配置
  • ✔ ★算法基础笔记(Acwing)(一)—— 基础算法(20道题)【java版本】
  • 简单记录下gin中使用中间件记录操作日志
  • 基于Matlab利用IRM和RRTstar实现无人机路径规划(附上源码+数据+说明+报告+PPT)
  • uniapp使用@microsoft/signalr(报错“ReferenceError: require is not defined“)
  • CloudCompare 二次开发(9)——半径滤波