1.  
  2. package com.ynhrm.common.utils;
  3.  
  4. import com.alibaba.fastjson.JSONObject;
  5. import lombok.Data;
  6. import org.apache.http.Consts;
  7. import org.apache.http.client.config.RequestConfig;
  8. import org.apache.http.client.methods.CloseableHttpResponse;
  9. import org.apache.http.client.methods.HttpPost;
  10. import org.apache.http.entity.StringEntity;
  11. import org.apache.http.impl.client.CloseableHttpClient;
  12. import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
  13. import org.apache.http.impl.client.HttpClientBuilder;
  14. import org.apache.http.impl.client.HttpClients;
  15. import org.apache.http.util.EntityUtils;
  16. import org.springframework.boot.context.properties.ConfigurationProperties;
  17. import org.springframework.context.annotation.Configuration;
  18. import org.springframework.stereotype.Component;
  19.  
  20. import java.io.IOException;
  21. import java.util.HashMap;
  22. import java.util.Map;
  23.  
  24. @Component
  25. @ConfigurationProperties("http.config")
  26. @Data
  27. public class HttpUtils {
  28. static String url="http://localhost:9002/system/login";
  29. static String mobile="13294950520";
  30. static String password="123456";
  31. /*String url;
  32. String mobile;
  33. String password;*/
  34. String result="";
  35. public String httpPost(){
  36. //CloseableHttpClient实现了HttpClient接口
  37. CloseableHttpClient httpClient= HttpClients.createDefault();
  38. HttpPost httpPost=new HttpPost(url);
  39.  
  40. //创建HttpClientBuilder设置属性
  41. HttpClientBuilder httpClientBuilder = HttpClientBuilder.create().setDefaultRequestConfig(RequestConfig.custom()
  42. .setConnectionRequestTimeout(6000)
  43. .setSocketTimeout(6000)
  44. .setConnectTimeout(6000).build()).setRetryHandler(new DefaultHttpRequestRetryHandler(3, true));
  45.  
  46. //设置请求头信息
  47. Map<String,String> map=new HashMap<>();
  48. map.put("Accept","application/json, text/plain, */*");
  49. map.put("Accept-Encoding","gzip, deflate");
  50. map.put("Accept-Language","zh-CN,zh;q=0.9");
  51. map.put("Connection","keep-alive");
  52. map.put("Content-Type","application/json;charset=UTF-8");
  53. map.put("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5024.400 QQBrowser/10.0.932.400");
  54. for (Map.Entry<String, String> entry : map.entrySet()) {
  55. httpPost.setHeader(entry.getKey(), entry.getValue());
  56. }
  57.  
  58. //传递参数为json数据
  59. JSONObject jsonObject=new JSONObject();
  60. jsonObject.put("mobile",mobile);
  61. jsonObject.put("password",password);
  62. //创建指定内容和编码的字符串实体类
  63. StringEntity entity=new StringEntity(jsonObject.toString(), Consts.UTF_8);
  64. //设置请求参数
  65. httpPost.setEntity(entity);
  66.  
  67. // 创建HttpClient对象,CloseableHttpClient实例的生成器
  68. httpClient=httpClientBuilder.build();
  69.  
  70. try {
  71. // 发送HttpPost请求,获取返回值
  72. CloseableHttpResponse response=httpClient.execute(httpPost);
  73. result = EntityUtils.toString(response.getEntity(), Consts.UTF_8);
  74. } catch (Exception e) {
  75. e.printStackTrace();
  76. }finally {
  77. try {
  78. //释放资源
  79. httpClient.close();
  80. } catch (Exception e) {
  81. e.printStackTrace();
  82. }
  83. }
  84.  
  85. return result;
  86. }
  87.  
  88. public static void main(String[] args) {
  89. HttpUtils httpUtils = new HttpUtils();
  90. String s = httpUtils.httpPost();
  91. System.out.println(s);
  92. }
  93. }
  1. <dependency>
  2. <groupId>org.apache.httpcomponents</groupId>
  3. <artifactId>httpclient</artifactId>
  4. <version>4.5.2</version>
  5. </dependency>

接口调用post请求参数在body中的更多相关文章

  1. python+pytest接口自动化(6)-请求参数格式的确定

    我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求.例如某个接口规定的请求主体的编码方式为 applicat ...

  2. Action获取请求参数的3中方式

    方式一:Action本身作为Model对象,通过属性注入(Setter)方法讲参数数据封装到Action中 具体为:在Action中,提供和参数名相同的几个属性,并为其提供set方法,那么,该参数会被 ...

  3. SpringMVC @RequestBody请求参数在postman中的请求

    使用SpringMVC框架,controller使用参数  @RequestBody  LoginReq req   注解方式模拟http请求 需要请求header添加一个参数 设置  Header参 ...

  4. swagger请求参数在header中添加token

    网友大部分说的是如下配置 参照配置然而没有作用 注掉改红框内的配置,在方法上加如下注释就可以用 @ApiImplicitParams({ @ApiImplicitParam(paramType = & ...

  5. Struts2基础-4-2 -struts拦截器实现权限控制案例+ 模型驱动处理请求参数 + Action方法动态调用

    1.新建项目,添加jar包到WEB-INF目录下的lib文件夹,并添加到builde path里面 整体目录结构如下 2.新建web.xml,添加struts2核心过滤器,和默认首页 <?xml ...

  6. struts2视频学习笔记 11-12(动态方法调用,接收请求参数)

    课时11 动态方法调用 如果Action中存在多个方法时,可以使用!+方法名调用指定方法.(不推荐使用) public String execute(){ setMsg("execute&q ...

  7. jmeter将上一个接口返回值作为下一个接口的请求参数

    在jmeter中有时候会用到,将上一个接口的返回值作为下一个接口的请求参数 具体操作如下: 1.首先新建一个http请求(右键线程组--添加Sampler--http请求),同时添加好接口相应的请求参 ...

  8. Spring MVC的各种参数绑定方式(请求参数用基础类型和包装类型的区别)(转)

    1.基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int cou ...

  9. HttpClient 远程接口调用方式

    远程接口调用方式HttpClient 问题:现在我们已经开发好了接口了,那该如何调用这个接口呢? 答:使用Httpclient客户端.   Httpclient简介 什么是httpclient Htt ...

随机推荐

  1. CodeForce-1196C-Robot Breakout

    原题链接 原题大意: 每个机器人分散,可以上下左右移动,但是有些机器人不能向某些方向移动 给出每个机器人的坐标,和每个方向能否正常行进 思路: 用minx, maxx, miny, maxy 记录可以 ...

  2. 购物车1.0版——python第5天

    # 输出商品列表,用户输入序号,显示选中商品名称# 商品li = ['手机', '电脑', '耳机', '键盘', '鼠标']# 要求:1.页面显示序号+商品名称如下# 1 手机# 2 电脑# 3 耳 ...

  3. Ubuntu安装护眼程序

    目录 1.安装 2.配置 参考资料 一开始想在Ubuntu下安装在Windows下使用的f.lux,但是折腾了很久f.lux也没能正常运作.于是打开另一台Ubuntu电脑,将上面使用的Redshift ...

  4. Volatile 只保证可见性,并不保证原子性

    [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/52525724   在说明Java多线程内存可见性之前,先来简单了解一下J ...

  5. Logstash,Fluentd, Logtail对比伤害

    摘要: 针对主流日志采集客户端(Logstash,Fluentd,以及日志服务客户端Logtail)进行功能.性能和稳定性测评 日志收集的场景 DT时代,数以亿万计的服务器.移动终端.网络设备每天产生 ...

  6. java中多种方式解析xml

    第一种:DOM.DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正 ...

  7. 三次握手和四次挥手以及TCP标志位的详细介绍

    一.TCP标志位 在讲TCP三次握手和四次挥手之前,先说一下TCP标志位,方便后续的理解. 简单来说,TCP标志位的值代表了当前请求的目的. 标志位一共有6种,分别是: SYN(synchronous ...

  8. element UI的使用

    npm install --save element-ui main.js里面添加 import ElementUI from 'element-ui' import 'element-ui/lib/ ...

  9. getopts举例

  10. fiddler 4 抓取 https 设置

    Fiddler抓取https 设置 1.打开fiddler,点击工具栏中的Tools—>Options,点击Actions,选择最后一项,Reset All certificates,然后关闭, ...