1. 所需依赖
  1. <dependency>
  2. <groupId>org.apache.httpcomponents</groupId>
  3. <artifactId>httpclient</artifactId>
  4. <version>4.5.3</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.httpcomponents</groupId>
  8. <artifactId>httpcore</artifactId>
  9. <version>4.4.10</version>
  10. </dependency>
  1.  
  1. package com.sinoservices.bms.bbl.common.util;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.nio.charset.Charset;
  7.  
  8. import org.apache.http.client.config.RequestConfig;
  9. import org.apache.http.client.methods.CloseableHttpResponse;
  10. import org.apache.http.client.methods.HttpGet;
  11. import org.apache.http.client.methods.HttpPost;
  12. import org.apache.http.entity.StringEntity;
  13. import org.apache.http.impl.client.CloseableHttpClient;
  14. import org.apache.http.impl.client.HttpClients;
  15. import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
  16. import org.slf4j.Logger;
  17. import org.slf4j.LoggerFactory;
  18.  
  19. import com.alibaba.fastjson.JSONObject;
  20. import com.alibaba.fastjson.serializer.SerializerFeature;
  21.  
  22. /**
  23. *
  24. * @Description http调用工具类
  25. * @author Lynch.Feng
  26. * @Date 2018年10月26日 下午3:53:03
  27. * @version 1.0.0
  28. */
  29. public class HttpUtil {
  30. private static final Logger logger = LoggerFactory.getLogger(HttpUtil.class);
  31.  
  32. private HttpUtil() {
  33.  
  34. }
  35.  
  36. private static CloseableHttpClient httpClient;
  37.  
  38. static {
  39. PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
  40. cm.setMaxTotal(100);
  41. cm.setDefaultMaxPerRoute(20);
  42. cm.setDefaultMaxPerRoute(50);
  43. httpClient = HttpClients.custom().setConnectionManager(cm).build();
  44. }
  45.  
  46. public static String get(String url) {
  47. CloseableHttpResponse response = null;
  48. BufferedReader in = null;
  49. String result = "";
  50. try {
  51. HttpGet httpGet = new HttpGet(url);
  52. RequestConfig requestConfig =
  53. RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
  54. httpGet.setConfig(requestConfig);
  55. httpGet.setConfig(requestConfig);
  56. httpGet.addHeader("Content-type", "application/json; charset=utf-8");
  57. httpGet.setHeader("Accept", "application/json");
  58. response = httpClient.execute(httpGet);
  59. in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
  60. StringBuilder sb = new StringBuilder();
  61. String line = "";
  62. while ((line = in.readLine()) != null) {
  63. sb.append(line);
  64. }
  65. in.close();
  66. result = sb.toString();
  67. } catch (IOException e) {
  68. logger.error("http request error", e);
  69. } finally {
  70. try {
  71. if (null != response) {
  72. response.close();
  73. }
  74. } catch (IOException e) {
  75. logger.error("close response error", e);
  76. }
  77. }
  78. return result;
  79. }
  80.  
  81. public static String postJson(String url, String jsonString) {
  82. CloseableHttpResponse response = null;
  83. BufferedReader in = null;
  84. String result = "";
  85. try {
  86. HttpPost httpPost = new HttpPost(url);
  87. RequestConfig requestConfig =
  88. RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
  89. httpPost.setConfig(requestConfig);
  90. httpPost.setConfig(requestConfig);
  91. httpPost.addHeader("Content-type", "application/json; charset=utf-8");
  92. httpPost.setHeader("Accept", "application/json");
  93. httpPost.setEntity(new StringEntity(jsonString, Charset.forName("UTF-8")));
  94. response = httpClient.execute(httpPost);
  95. in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
  96. StringBuilder sb = new StringBuilder();
  97. String line = "";
  98. while ((line = in.readLine()) != null) {
  99. sb.append(line);
  100. }
  101. in.close();
  102. result = sb.toString();
  103. } catch (IOException e) {
  104. logger.error("http request error", e);
  105. } finally {
  106. try {
  107. if (null != response) {
  108. response.close();
  109. }
  110. } catch (IOException e) {
  111. logger.error("close response error", e);
  112. }
  113. }
  114. return result;
  115. }
  116. }

rest接口webservice接口利用http请求方式发送数据的更多相关文章

  1. C#带cookie Post和Get方式发送数据,保持cookie

    在实际编程中,可能需要读取特定网页的信息,但很多网站需要用户登录后,才能够获取相关的页面内容,这就需要编程者先临时存储当前的cookie,在C#中可以使用CookieContainer 对象来保存登录 ...

  2. Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)

    讲这个之前,我们先来说说get和post两种请求的区别吧!!! 1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.jsp?name=te ...

  3. Iris请求方式和数据返回类型

    1. Iris起服务 package main import "github.com/kataras/iris" func main() { //1.创建app结构体对象 app ...

  4. Android使用HttpUrlConnection请求服务器发送数据详解

    HttpUrlConnection是java内置的api,在java.net包下,那么,它请求网络同样也有get请求和post请求两种方式.最常用的Http请求无非是get和post,get请求可以获 ...

  5. Ajax使用post方式发送数据注意事项

    Ajax使用post方式给服务器传递数据时,需要将传递的字符串转化为模拟from表单发送数据的XML格式 在open之后奢姿头协议信息,模拟from表单传递数据 xhr.setRequestHeade ...

  6. get、post请求方式在postman中使用步骤

    1.get请求方式:不需要借助任何工具,在浏览器里面就可以发送请求,直接在浏览器里面输入访问      url?参数名=参数值  url?parma=abc&name=abcd 2.post请 ...

  7. TR-069_Amendment-4:附录G.穿越NAT网关的连接请求方式

    注意:这种机制只适用于RFC 3489[21]中定义的经典STUN,RFC 5389引入后,这个机制已经过时.这个机制不是设计用于RFC 5389中定义的STUN.IPv6部署要么不使用NAT,要么以 ...

  8. 使用loadrunner编写webservice接口请求

    1.使用工具: loadrunner12,本实例截图中都是loadrunner12工具 2.操作步骤: 1).新建脚本,选择Web Services协议: 2).选择工具栏: 3).点击Import, ...

  9. 利用Fiddler拦截接口请求并篡改数据

    近期在测试一个下单的项目,出于安全角度考虑,测试了一个场景,那就是利用工具对接口进行拦截并篡改数据.将接口一拦截并篡改数据后,发现收货满满.开发默默接受了我的建议,并对代码进行了修改. 对于fiddl ...

随机推荐

  1. OpenCL 矩阵乘法

    ▶ 矩阵乘法,按照书里的内容进行了几方面的优化,包括局部内存,矢量数据类型,寄存器,流水线等. ● 最直接的乘法.调用时 main.c 中使用 size_t globalSize[] = { rowA ...

  2. 关于Vue单页面实现微信分享的Bug

    // 问题描述在微信中分享到朋友圈或好友时,分享出去的路由被破坏,打开分享的链接,路由中的“#”会被去掉并追加?from= & Timeline= 之类的后缀参数,这就造成了分享出去的链接只能 ...

  3. 读取tensorflow的checkpoint里保存的参数

    import tensorflow as tf from tensorflow.python import pywrap_tensorflow import os checkpoint_path = ...

  4. oracle数据库误删的表以及表中记录的恢复

    oracle数据库误删的表以及表中记录的恢复 一.表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: --1.从flash bac ...

  5. Ubuntu下安装pytorch(GPU版)

    我这里主要参考了:https://blog.csdn.net/yimingsilence/article/details/79631567 并根据自己在安装中遇到的情况做了一些改动. 先说明一下我的U ...

  6. Kafka运维填坑(转)

    前提: 只针对Kafka 0.9.0.1版本; 说是运维,其实偏重于问题解决; 大部分解决方案都是google而来, 我只是作了次搬运工; 有些问题的解决方案未必一定是通用的, 若应用到线上请慎重; ...

  7. Tomcat的三种安装方式:解压版、安装版、配置成Windows服务版

    https://blog.csdn.net/Jessica_XLF/article/details/81711429

  8. Educational Codeforces Round 30 D. Merge Sort

    题意:给你n和k,n代表有多少个数,k代表几次操作,求一个1到n的序列,要k次mergesort操作才能还原 Examples Input 3 3 Output 2 1 3 Input 4 1 Out ...

  9. BASE64、MD5、SHA、HMAC几种加密算法

    本篇内容简要介绍BASE64.MD5.SHA.HMAC几种加密算法.    BASE64编码算法不算是真正的加密算法.    MD5.SHA.HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加 ...

  10. Mybatis useGeneratedKeys 填充自增主键值(使用Mysql)的原理分析

    一.Mybatis配置 <insert id="insert" parameterType="com.test.TestDO" keyProperty=& ...