首页 > 其他分享 >使用CloseableHttpClient 访问 http 和https 的get请求

使用CloseableHttpClient 访问 http 和https 的get请求

时间:2024-07-25 23:51:43浏览次数:14  
标签:http String get CloseableHttpClient param null response httpclient

public class HttpClientUtil {

private static Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);


/** * 带参数的get请求 * * @param url * @param param * @return String */ public static String doGet(String url, Map<String, String> param) { // 创建Httpclient对象 CloseableHttpClient httpclient = HttpClients.createDefault(); String resultString = ""; CloseableHttpResponse response = null; try { // 创建uri URIBuilder builder = new URIBuilder(url); if (param != null) { for (String key : param.keySet()) { builder.addParameter(key, param.get(key)); } } URI uri = builder.build(); // 创建http GET请求 HttpGet httpGet = new HttpGet(uri); // 执行请求 response = httpclient.execute(httpGet); // 判断返回状态是否为200 if (response.getStatusLine().getStatusCode() == 200) { resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (response != null) { response.close(); } httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } return resultString; } /** * https带参数的get请求 忽略证书 * * @param url * @param param * @return String */ public static String httpsDoGet(String url, Map<String, String> param) throws Exception { // 创建Httpclient对象 // 创建SSL上下文,忽略证书验证 SSLContextBuilder sslContextBuilder = SSLContexts.custom().loadTrustMaterial((chain, authType) -> true); SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContextBuilder.build(), NoopHostnameVerifier.INSTANCE); // 创建 CloseableHttpClient 对象 CloseableHttpClient httpclient = HttpClients.custom() .setSSLSocketFactory(sslSocketFactory) .build(); String resultString = ""; CloseableHttpResponse response = null; try { // 创建uri URIBuilder builder = new URIBuilder(url); if (param != null) { for (String key : param.keySet()) { builder.addParameter(key, param.get(key)); } } URI uri = builder.build(); // 创建http GET请求 HttpGet httpGet = new HttpGet(uri); // 执行请求 response = httpclient.execute(httpGet); // 判断返回状态是否为200 if (response.getStatusLine().getStatusCode() == 200) { resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (response != null) { response.close(); } httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } return resultString; }
}

  

标签:http,String,get,CloseableHttpClient,param,null,response,httpclient
From: https://www.cnblogs.com/hxd9588/p/18324370

相关文章

  • drf学习总览,http请求不同编码格式,请求体什么样子,新的Request对象和Response, 序列化类
    Ⅰdrf学习总览概述#1请求和响应request:请求对象:请求方式,请求携带的数据,request.GET,request.POST,requset.body,request.META:请求头中得四件套:操作响应体HTTPResponse('sdfs')#若是要携带请求头和响应状态码应该是returnHTTPResponse('sdfs',sta......
  • system.getproperty值从哪里来的
    system.getproperty值从哪里来的在Java中,System.getProperty(Stringkey)方法用于获取系统属性的值。这些系统属性来源于多个地方,但主要可以分为以下几类:JVM启动参数:当JVM启动时,可以通过-D参数来设置系统属性。例如,java-DmyProperty=myValueMyApp会在MyApp中设置一个名为my......
  • locust 中HttpUser和TaskSet是什么关系
    在Locust中,HttpUser和TaskSet是用来定义用户行为和任务集合的重要组件。HttpUser:HttpUser是一个类,它代表了一个模拟的用户,可以用来模拟HTTP请求。HttpUser可以指定一些属性,比如最小等待时间和最大等待时间(min_wait和max_wait),这些属性控制了两个连续任务之间的随......
  • Java筛选数据:List的contains和Map的get哪个快?
    在Java中,List的contains方法和Map的get方法在性能上有一些区别,主要取决于数据结构的特性和使用场景:List的contains方法:List是一个有序集合,使用线性查找来确定列表中是否包含某个元素。时间复杂度为O(n),其中n是列表的大小。对于小型的List或者在列表中的......
  • HTTP的相关基础知识
    目录一、概念二、特点三、请求数据的格式四、GET和POST请求区别五、响应数据的格式六、常见HTTP响应头七、响应状态码八、常见的响应状态码一、概念超文本传输协议:规定了浏览器和服务器之间数据传输的规则传输数据的规则:客户端浏览器和服务器之间进行数据交互,传......
  • pikachu 之CSRF(跨站请求伪造)get和post型
    CSRF(跨站请求伪造)概念跨站请求伪造(Cross-SiteRequestForgery,简称CSRF)是一种攻击方式,攻击者通过伪造用户的请求,欺骗受害者在不知情的情况下执行不想要的操作。这种攻击利用了用户已经在目标网站上通过身份验证的状态(如登录状态),从而以用户的身份发送恶意请求。工作原理......
  • 企业用户适合的https证书
    对于企业网站来说,选择合适的SSL证书非常重要,因为它不仅能保护网站的数据传输安全,还能增强用户对网站的信任度。根据不同的需求和预算,可以选择不同类型的SSL证书。以下是几种常见的SSL证书类型及其适用场景:从安全级别上区别:域名验证型(DV)SSL证书:这是最基础的SSL证书,仅验......
  • 常用端口申请IP SSL实现https教程
    在网络安全和数据保护方面,使用HTTPS协议来保护网站和应用程序的通信变得至关重要。一般情况下,HTTPS证书是基于域名签发的。但是,有时候我们可能需要为IP地址申请HTTPS证书,在一些特殊场景下确保通信的安全性。IPSSL证书也是SSL证书的一种,因其是颁发给IP地址使用的,所以我们......
  • python中scrapy爬取数据get()与getall()区别
    在使用scrapy进行爬取数据的时候,有些时候需要爬取的是一段文本,或者一个div里面有很多内容,这时候我们就要使用到get()或者getall()来获取数据: get():是获取的满足条件的第一个数据。getall():是获取的满足条件的所有数据。scrapyget()getall()原理在Scrapy中,get(......
  • C#Http服务器报HttpListener拒绝访问异常解决方法
    问题:Win7下在尝试搭建简单http服务器的时候,执行httpListener.Start();报错HttpListener拒绝访问异常 代码如下:HttpListenerhttpListener=newHttpListener();//创建服务器监听httpListener.Prefixes.Add("http://+:8080/");//配置监听地址。+代表本机可能的IP如localho......