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

阿里云网站建设方案书一定要嘛已备案域名买卖

阿里云网站建设方案书一定要嘛,已备案域名买卖,网站栏目词,蕲春做网站项目中经常会用到向第三方系统发送请求来传递数据或者获得信息&#xff0c;一般用的比较多的为HttpClient 和 HttpRequest&#xff0c;这里简要总结一下 HttpClient 和 HttpRequest 的用法 一、HttpClient 1. 发送get请求 public static String get(String url, Map<Stri…

项目中经常会用到向第三方系统发送请求来传递数据或者获得信息,一般用的比较多的为HttpClient 和 HttpRequest,这里简要总结一下 HttpClient 和 HttpRequest 的用法

一、HttpClient

1. 发送get请求

public static String get(String url, Map<String, String> headMap, int timeout) {String result = null;CloseableHttpClient httpclient = HttpClients.createDefault();CloseableHttpResponse response = null;try {HttpGet httpGet = new HttpGet(url);RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).build();httpGet.setConfig(requestConfig);setHead(httpGet, headMap);response = httpclient.execute(httpGet);HttpEntity entity = response.getEntity();result = EntityUtils.toString(entity, "UTF-8");EntityUtils.consume(entity);} catch (Exception e) {LOG.error("HttpGet [{}] error: {}", url, e.getMessage(), e);throw new RuntimeException(e.getMessage(), e);} finally {try {if (null != response) {response.close();  }httpclient.close();} catch (IOException e) {LOG.error("HttpGet [{}] httpclient close error: {}", url, e.getMessage(), e);}}return result;
}

1. 发送post请求

public static String postJson(String url, String body, Map<String, String> headMap, int timeout) {CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;try {HttpPost httpPost = new HttpPost(url);httpPost.addHeader("Content-Type", "application/json;charset=utf-8");setHead(httpPost, headMap);RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).build();httpPost.setConfig(requestConfig);httpPost.setEntity(new StringEntity(body, "UTF-8"));response = httpClient.execute(httpPost);HttpEntity entity = response.getEntity();String responseContent = EntityUtils.toString(entity, "UTF-8");EntityUtils.consume(entity);return responseContent;} catch (Exception e) {LOG.error("HttpPostJson [{}] error: {}", url, e.getMessage(), e);throw new RuntimeException(e.getMessage(), e);} finally {try {response.close();httpClient.close();} catch (IOException e) {LOG.error("HttpPostJson [{}] httpclient close error: {}", url, e.getMessage(), e);}}
}
private static void setHead(HttpRequestBase httpRequestBase, Map<String, String> headMap) {if (headMap != null && headMap.size() > 0) {Set<String> keySet = headMap.keySet();for (String key : keySet) {httpRequestBase.addHeader(key, headMap.get(key));}}
}

优点:连接池(复用HTTP连接)、重试、代理机制,社区活跃,性能更加优异

缺点:配置和API使用较为复杂

二、HttpRequest

1. 发送get请求

public static String get(String methodName, String url, Map<String, Object> paramMap, Map<String, String> headers){return HttpRequest.get(url).addHeaders(headers).form(paramMap).execute().body();
}

2. 发送post请求

public static String postForm(String methodName, String url, Map<String, Object> paramMap, Map<String, String> headers, String paramStr){return HttpRequest.post(url).addHeaders(headers).form(paramMap).body(paramStr).execute().body();
}

优点:功能简单,整体比较易用

缺点:性能一般,社区支持较弱

三、对比

hutool 的 HttpRequest 底层是基于 HttpClient 的,是对其进行了封装,提供了更加简便的API请求,使用 HttpRequest 可在一行代码中实现发送简单的HTTP请求,如果需要使用 HttpClient 更加复杂的操作,则可以通过自定义 HttpClient 并通过 setHttpClient() 方法传入 HttpClient

例如通过自定义Httpclient实现设置最大连接数量

// 创建连接池管理器
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(100); // 设置最大连接数
connectionManager.setDefaultMaxPerRoute(20); // 设置每个路由的最大连接数// 创建自定义的HttpClient
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create().setConnectionManager(connectionManager);// 使用 Hutool 的 HttpRequest 发送请求
HttpResponse response = HttpRequest.get("https://example.com").timeout(5000) // 设置超时时间.setHttpClient(httpClientBuilder.build()) // 设置自定义的HttpClient.execute();

总结

  1. 小型简单项目可使用 HttpRequest 快速请求,较大型复杂项目适合使用 HttpClient
  2. HttpClient 引入 httpclient 依赖,HttpRequest 引入 hutool 依赖
  3. 如果有连接池、重试、代理等机制的需求则可使用 HttpClient
  4. 高性能,高并发,有复杂Http操作的场景则可使用 HttpClient
http://www.yayakq.cn/news/178841/

相关文章:

  • 做是么网站友情链接多少钱一个
  • 怎么看一个网站的cms弹幕网站是什么技术做的
  • 加强网站政务服务建设方案网站开发与维修是什么意思
  • 昊诺网站建设石家庄网页设计招聘
  • 南通网站推广排名wordpress给指定用户设置角色
  • 佛山网站设计怎么做天津原筑展览展示有限公司
  • 重庆网站建站模板华为开发平台
  • dede 两个网站图片路径企业建网站公司多少钱
  • asp网站连接access数据库纯文字网站设计
  • 免费建设工程信息网站建站教程的优点
  • 网站后台管理界面代码广告推广群
  • 新闻门户网站源码建设小微公司网站需要多少钱
  • 自己如何做网站推广门户网站建设情况简介
  • 怎么在ppt上做网站什么是优化电池充电
  • 怎么做网络推广网站手机端网页设计软件
  • 曹县建设局网站个人注册网站怎么注册
  • 小程序需要写网站建设方案书wordpress阅读更多标签
  • 邢台网站制作的地方电子元器件外贸网站建设
  • 外贸网站建设案例福州seo按天扣费
  • 行业网站维护关键词搜索数据
  • 做外汇都要看什么网站轻蜂加速器
  • 阿里云做影视网站电子商务网站建设与维护李建忠
  • 网站开发代理招商frontpage网站模板
  • 怎么样可以自己做网站四川建设厅证书查询官网
  • 揭阳网站设计萍乡公司做网站
  • 怎样防止别人利用自己电脑做网站做家装的网站
  • 黔南网站建设网站注册后能不能注销
  • 网站营运linux宝塔面板做网站
  • 网站设计与实现作业免费心理咨询师24小时在线咨询
  • 北京西站在几环套模板网站价格表