我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java原生HttpClient怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java原生HttpClient怎么使用

这篇文章主要介绍“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怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java原生HttpClient怎么使用

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

下载Word文档

猜你喜欢

Java原生HttpClient怎么使用

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

Java HttpClient怎么使用

今天小编给大家分享一下Java HttpClient怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、导入依赖
2023-07-02

java怎么使用HttpClient调用接口

这篇文章主要介绍“java怎么使用HttpClient调用接口”,在日常操作中,相信很多人在java怎么使用HttpClient调用接口问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么使用HttpC
2023-07-04

Java服务RestTemplate与HttpClient怎么使用

本篇内容主要讲解“Java服务RestTemplate与HttpClient怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java服务RestTemplate与HttpClient怎么使
2023-07-06

java中怎么使用httpclient提交表单

在Java中使用HttpClient提交表单可以通过以下步骤实现:1. 添加依赖:首先,需要在项目中添加HttpClient的依赖。可以使用Maven或者Gradle来管理依赖。Maven依赖:```xmlorg.apache.httpco
2023-08-08

android的httpClient怎么使用

在Android中,可以使用HttpClient来发送HTTP请求。以下是使用HttpClient的基本步骤:1. 导入HttpClient库:首先,在项目的`build.gradle`文件中添加以下依赖:```groovyimplemen
2023-08-23

怎么使用HttpClient和OkHttp

这篇文章主要讲解了“怎么使用HttpClient和OkHttp”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用HttpClient和OkHttp”吧!使用HttpClient和OkHt
2023-06-16

怎么使用原生的Feign

这篇文章主要介绍了怎么使用原生的Feign,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是FeignFeign 是由 Netflix 团队开发的一款基于 Java 实现的
2023-06-25

java中如何使用HttpClient调用接口

这篇文章主要介绍了java中如何使用HttpClient调用接口,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

Java服务RestTemplate与HttpClient如何使用

这篇“Java服务RestTemplate与HttpClient如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Jav
2023-07-02

MyBatis中怎么使用原生SQL

在MyBatis中使用原生SQL可以通过使用, , , 等标签来执行SQL语句。以下是一个示例:使用原生SQL查询数据: