iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java原生HttpClient怎么使用
  • 913
分享到

Java原生HttpClient怎么使用

2023-06-29 22:06:10 913人浏览 泡泡鱼
摘要

这篇文章主要介绍“Java原生HttpClient怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java原生HttpClient怎么使用”文章能帮助大家解决问题。1.信任证书管理类packa

这篇文章主要介绍“Java原生HttpClient怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java原生HttpClient怎么使用”文章能帮助大家解决问题。

1.信任证书管理类

package cn.wja.component;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;import java.security.cert.X509Certificate;class MyX509TrustManager implements X509TrustManager {    @Override    public void checkClientTrusted(X509Certificate[] x509Certificates, String s)  {    }    @Override    public void checkServerTrusted(X509Certificate[] x509Certificates, String s)  {    }    @Override    public X509Certificate[] getAcceptedIssuers() {        return null;    }    public static TrustManager[] getTrustManagers() {        TrustManager[] trustAllCertificates = {new MyX509TrustManager()};        return trustAllCertificates;    }}

2.HttpClient类

package cn.wja.component;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLParameters;import javax.net.ssl.TrustManager;import java.net.http.HttpClient;import java.security.KeyManagementException;import java.security.NoSuchAlGorithmException;import java.security.SecureRandom;import java.time.Duration;public class MyHttpClient {    static public HttpClient getClient() throws NoSuchAlgorithmException, KeyManagementException {        TrustManager[] trustManagers = MyX509TrustManager.getTrustManagers();        var timeoutInSeconds = 60;        SSLParameters sslParams = new SSLParameters();        sslParams.setEndpointIdentificationAlgorithm("");        SSLContext sc = SSLContext.getInstance("SSL");        //取消主机名验证        System.setProperty("jdk.internal.httpclient.disableHostnameVerification", "true");        sc.init(null, trustManagers, new SecureRandom());        return HttpClient.newBuilder()                .connectTimeout(Duration.ofMillis(timeoutInSeconds * 1000))                .sslContext(sc)                .sslParameters(sslParams)                .followRedirects(HttpClient.Redirect.NEVER)                .version(HttpClient.Version.HTTP_2)                .build();    }}

3.发送请求工具

package cn.wja.util;import cn.wja.component.MyHttpClient;import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import static java.NIO.charset.StandardCharsets.UTF_8;public class HttpUtils {    public static HttpResponse<String> sendGet(String urlStr, String cookieStr) throws Exception {        HashMap<String, String> hashMap = new HashMap<>();        hashMap.put("Cookie",cookieStr);        return sendGet(urlStr,hashMap);    }    public static HttpResponse<String> sendGet(String urlStr, Map<String,String> headers) throws KeyManagementException, NoSuchAlgorithmException, IOException, InterruptedException {        HttpClient client = MyHttpClient.getClient();        HttpRequest.Builder reqBuilder = getReqBuilder(urlStr);        reqBuilder.GET();        for (String key:headers.keySet()){            reqBuilder.header(key, headers.get(key));        }        HttpRequest request = reqBuilder.build();        HttpResponse<String> result = client.send(request, HttpResponse.BodyHandlers.ofString(UTF_8));        return result;    }    private static HttpResponse<String> sendPost(String contentType, String urlStr, String bodyStr, String cookieStr) throws Exception {        HttpClient client = MyHttpClient.getClient();        HttpRequest.Builder reqBuilder = getReqBuilder(urlStr);        HttpRequest.BodyPublisher bodyPublisher = HttpRequest.BodyPublishers.ofString(bodyStr);        reqBuilder.header("Content-Type", contentType)                .POST(bodyPublisher)                .header("Cookie", cookieStr);        HttpRequest request = reqBuilder.build();        HttpResponse<String> result = client.send(request, HttpResponse.BodyHandlers.ofString(UTF_8));        return result;    }        public static HttpResponse<String> sendFORMPost(String urlStr, String formStr, String cookieStr) throws Exception {        return sendPost("application/x-www-form-urlencoded;charset=utf-8", urlStr, formStr, cookieStr);    }    public static HttpResponse<String> sendJSONPost(String urlStr, String jsonStr, String cookieStr) throws Exception {        return sendPost("application/json;charset=utf-8", urlStr, jsonStr, cookieStr);    }    public static HttpRequest.Builder getReqBuilder(String urlStr) {        return HttpRequest.newBuilder()                .uri(URI.create(urlStr))                .header("User-Agent", "Mozilla/5.0 (windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0");    }}

4.测试

Java原生HttpClient怎么使用

测试表明,通过调用工具类方法,可以直接发送GET请求和带Form表单/Json的POST请求。如果您要发送其他形式的HTTP请求,也可以参照上述代码自行实现。

关于“Java原生HttpClient怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Java原生HttpClient怎么使用

本文链接: https://www.lsjlt.com/news/326628.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java原生HttpClient怎么使用
    这篇文章主要介绍“Java原生HttpClient怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java原生HttpClient怎么使用”文章能帮助大家解决问题。1.信任证书管理类packa...
    99+
    2023-06-29
  • Java原生HttpClient的使用详解
    目录1.信任证书管理类2.HttpClient类3.发送请求工具类4.测试提到Java发送HTTP请求,大家首先想到的是用apache的HttpClient,或者squareup的O...
    99+
    2024-04-02
  • Java HttpClient怎么使用
    今天小编给大家分享一下Java HttpClient怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、导入...
    99+
    2023-07-02
  • java怎么使用HttpClient调用接口
    这篇文章主要介绍“java怎么使用HttpClient调用接口”,在日常操作中,相信很多人在java怎么使用HttpClient调用接口问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么使用HttpC...
    99+
    2023-07-04
  • Java服务RestTemplate与HttpClient怎么使用
    本篇内容主要讲解“Java服务RestTemplate与HttpClient怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java服务RestTemplate与HttpClient怎么使...
    99+
    2023-07-06
  • java中怎么使用httpclient提交表单
    在Java中使用HttpClient提交表单可以通过以下步骤实现:1. 添加依赖:首先,需要在项目中添加HttpClient的依赖。...
    99+
    2023-08-08
    java httpclient
  • 怎么使用HttpClient和OkHttp
    这篇文章主要讲解了“怎么使用HttpClient和OkHttp”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用HttpClient和OkHttp”吧!使用HttpClient和OkHt...
    99+
    2023-06-16
  • android的httpClient怎么使用
    在Android中,可以使用HttpClient来发送HTTP请求。以下是使用HttpClient的基本步骤:1. 导入HttpCl...
    99+
    2023-08-23
    android httpClient
  • Java使用HttpClient详细示例
    目录准备环节第一步:在pom.xml中引入HttpClient的依赖第二步:引入fastjson依赖详细使用示例GET无参:GET有参(方式一:直接拼接URL):GET有参(方式二:...
    99+
    2024-04-02
  • 怎么使用原生的Feign
    这篇文章主要介绍了怎么使用原生的Feign,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是FeignFeign 是由 Netflix 团队开发的一款基于 Java 实现的...
    99+
    2023-06-25
  • Java服务RestTemplate与HttpClient如何使用
    这篇“Java服务RestTemplate与HttpClient如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Jav...
    99+
    2023-07-02
  • MyBatis中怎么使用原生SQL
    在MyBatis中使用原生SQL可以通过使用<select>, <insert>, <upd...
    99+
    2024-03-07
    MyBatis
  • java中如何使用HttpClient调用接口
    目录java使用HttpClient调用接口HttpClient 提供的主要的功能直接言归正传了!!!!上代码java的HttpClient调用远程接口使用方法实例java使用Htt...
    99+
    2022-11-13
    java使用HttpClient HttpClient调用接口 java HttpClient
  • GoFrame ORM原生方法怎么使用
    本篇内容介绍了“GoFrame ORM原生方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!常用方法SQL操作方法,返回原...
    99+
    2023-07-02
  • 如何在java中使用HttpClient处理错误
    如何在java中使用HttpClient处理错误?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可...
    99+
    2023-06-14
  • Java服务调用RestTemplate与HttpClient的使用详解
    目录概述RestTemplate概述及依赖配置类使用GET请求POST请求上传文件HttpClient概述使用概述 常见的远程调用方式有以下2种: RPC: Remote Produ...
    99+
    2024-04-02
  • vue怎么使用原生高德地图
    本篇内容主要讲解“vue怎么使用原生高德地图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么使用原生高德地图”吧!1、先在vue项目根目录下新建vue.config.js,这个文件是没有...
    99+
    2023-06-29
  • Flutter怎么使用Android原生播放器
    这篇文章主要介绍“Flutter怎么使用Android原生播放器”,在日常操作中,相信很多人在Flutter怎么使用Android原生播放器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Flutter怎么使用...
    99+
    2023-07-05
  • CSS原生嵌套语法怎么使用
    本文小编为大家详细介绍“CSS原生嵌套语法怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS原生嵌套语法怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。基本概念所谓的嵌套,就是将一个 CSS 规...
    99+
    2023-07-05
  • java怎么使用poi生成excel
    这篇文章主要介绍“java怎么使用poi生成excel”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java怎么使用poi生成excel”文章能帮助大家解决问题。使用poi生成excel通常包含一下...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作