创建免认证的HttpClient

Angular HttpClient深度解析:拦截器、错误处理与请求控制 HTTP客户端是前端应用与后端通信的核心基础设施,其设计直接影响稳定性、可维护性与性能。在TypeScript工程化实践中,基于Observable的HTTP抽象比Promise更契合取消、合并、流式处理等真实场景;而拦截器机制则为认证、日志、重试等横切关注点提供标准化扩展能力。Angular的HttpClientModule通过类型安全响应、自动JSON解析、HttpInterceptor管道和HttpTestingController测试支持,构建了企业级通信层的基础范式。本文围绕HttpClient、 阅读详情


目标:构建免SSL认证的HttpClient

JDK:Java8

依赖jar包:

<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.4.1</version>
		</dependency>

Java代码:

import javax.net.ssl.SSLContext;

import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.ssl.SSLContextBuilder;

public class HttpClientUtil {

	/**
	 * 构建免认证的HttpClient
	 * @param user
	 * @param password
	 * @return
	 */
	public static CloseableHttpClient getNoopSSLClient(String user, String password) {
		HttpClientBuilder clientBuilder = HttpClientBuilder.create();

		//设置认证
		AuthScope authScope = new AuthScope(AuthScope.ANY_HOST,
				AuthScope.ANY_PORT);		
		UsernamePasswordCredentials usernamePasswordCredentials = new UsernamePasswordCredentials(
				user, password);
		CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
		credentialsProvider.setCredentials(authScope,
				usernamePasswordCredentials);
		clientBuilder.setDefaultCredentialsProvider(credentialsProvider);

		// 设置免认证的SSLConnectionSocketFactory
		clientBuilder.setSSLSocketFactory(getNoopSSLConnectionSocketFactory());

		return clientBuilder.build();
	}

	/**
	 * 构建免认证的SSLConnectionSocketFactory
	 * @return
	 */
	private static SSLConnectionSocketFactory getNoopSSLConnectionSocketFactory() {
		SSLContext sslContext;
		try {
			sslContext = new SSLContextBuilder().loadTrustMaterial(null,
			/*
			 * 传统方式构建匿名内部类
			 * new TrustStrategy() { public boolean isTrusted(X509Certificate[]
			 * chain, String authType) throws CertificateException { return
			 * true; } }
			 */
			//采用Java8 lambda表达式 ->
			(chain, authType) -> true).build();

			// trust all hosts
			return new SSLConnectionSocketFactory(sslContext,
					NoopHostnameVerifier.INSTANCE);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return null;
	}
}


使用Apache HttpClient进行SSL、代理和多部分上传的Java笔记 在Java中,Apache HttpClient是一个强大的开源库,用于进行HTTP通信。本文将介绍如何使用Apache HttpClient进行这些操作,并提供相应的Java代码示例。通过上述示例,我们可以看到如何使用Apache HttpClient进行SSL连接、代理设置和多部分上传。这些功能使得Apache HttpClient成为一个强大而灵活的HTTP通信库,适用于各种Java应用程序的开发。多部分上传是将大文件分割成多个部分,并分别上传的过程。在上面的示例中,我们创建了一个。 阅读详情

相关推荐

auth_scope:用于解析和使用授权范围字符串的 Ruby 库

授权范围 AuthScope 是一个简单的库,用于通过字符串描述授权模式。 它旨在与(例如)OAuth 2.0 API 结合使用。 安装 将此行添加到应用程序的 Gemfile 中: gem 'auth_scope' 范围结构 授权范围字符串如下所示: user:email apps:one,another:read profile:* 空格分隔单独的授权许可,可以被视为彼此完全独立。 当一起指定时,它们被视为附加授权,这意味着如果提供的任何范围匹配,则授予授权。 :或命名空间定界符允许您创建通用和特定权限。 user:email比user更具体。 ,或批处理分隔符允许您将范围应用于同一命名空间级别的多个资源。 user:email,avatar相当于请求一个范围user:email user:avatar 。 *或通配符用于表示对单个命名空间的许可。 例如, user:*将

HttpClient跳过https证书认证

起因是因为报了一个错 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid c...

我秃了,也变强了。 6669

Halcon手眼标定实战:九点标定法从入门到精通(附完整代码)

本文详细介绍了Halcon环境下九点标定法的完整实现流程,从基础概念到实战技巧,帮助开发者快速掌握手眼标定技术。通过精确采集图像坐标与机械坐标,计算仿射变换矩阵,实现相机与机械臂坐标系的精确映射,适用于工业自动化中的平面定位场景。

v4w5x6的博客 411

java HttpClient使用代理地址,并且绕过https证书验证(抓包需要客户端往Charles工具指定的ip和端口发送数据)

直接复制下面两个方法,就可以使用代理发绕过证书验证的https请求了。 https请求时绕过ssl证书验证: /** * 绕过验证 * * @return * @throws NoSuchAlgorithmException * @throws KeyManagementException */ public static ...

祁东握力的博客 4430

华为星闪SLE实战:手把手教你用HarmonyOS开发智能家居控制应用(附完整代码)

本文详细介绍了如何利用华为星闪SLE技术,结合HarmonyOS开发智能家居控制应用。通过对比传统无线技术,阐述了星闪SLE在低时延、高可靠性和高并发方面的优势,并提供了从环境搭建、设备发现、连接管理到核心控制代码的完整实战教程,帮助开发者快速上手这一无线短距通信技术。

bert9linguist的博客 507

C语言手写HTTPD网站服务器

零基础手写C语言http网站服务器,快速入门C/C++后端开发、服务器开发。

程序员Rock的博客 1万+

关于Https协议和HttpClient的实现详解

介绍了关于Https协议和HttpClient实现

liweiminlining的专栏 3737

矩阵LED和矩阵按键

先说矩阵LED,如图: 下面以行几、列几的表达方法说明 三极管可以当做开关使用 由图可知,如果想让一个LED亮,那么它对应的行和列的三极管都要导通。如果这个矩阵每次只亮一个LED,那么正常写程序没问题。 如果我们想让LED1和LED6亮,其他灯不亮,则需要开启行1、行2、列1、列2,随之带来的问题就是LED2和LED5也会跟着亮起来。 解决方法类似于扫描,因为单片机运行速度很快,可以在很短的时间内开关数次而肉眼看不到。所以我们可以每次只亮一列(排)灯,亮单位时间后关掉同时开启另外一列(排),如此四次一循环

qq_46615634的博客 5794

Java中的HttpClient访问https

/** * 设置可访问https * @return */ public static CloseableHttpClient createSSLClientDefault() { try { SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy(...

qq_40132161的博客 7232

i茅台最新任务python脚本

从固定的 `header_context` 生成HTTP请求头,并加入用户的`userId`、`MT-Token`等动态信息,以模仿真实的请求。- 发送预约请求,提交商品和门店的参数,如 `sessionId`、`shopId`、`itemId` 等。- 定时任务:通过 `cron` 表达式 `0 0 9/21 * * *`,表示每月的9日和21日的0点执行。- `login`:使用验证码进行登录,并返回 `token` 和 `userId`。- 获取北京时间当天0点的时间戳,作为预约请求的时间参数。

三维点云技术探索 983

[DDR5]DDR5 SDRAM 状态图 和 基本功能

DDR5 SDRAM的读写操作以突发(burst mode)为导向,从选定的位置开始,并按照编程顺序进行16个突发长度或8个“切片”突发长度的操作。从ACTIVATE命令开始,然后是读取或写入命令。

串起点滴 1201

java利用httpclient通过get、post方式调用https接口

通过httpclient的get post方式调用http很常见。一般都是 HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("http://127.0.0.1/login"); 但是如果要调用https这个方式就不行了。就要修改DefaultHttpClient <dependency> <groupId>org.apache.httpcomponents</gro

terry711的专栏 1万+

BevFusion (1): 传感器介绍

激光雷达,也称光学雷达(LIght Detection And Ranging)是激光探测与测距系统的简称,它通过测定传感器发射器与目标物体之间的传播距离,分析目标物体表面的反射能量大小、反射波谱的幅度、频率和相位等信息,从而呈现出目标物精确的三维结构信息。激光雷达是自动驾驶车辆的关键传感器,如下图所示,车辆上方旋转的圆柱体对应就是激光雷达传感器。

@bangbang的博客 1475

Angular HttpClient深度指南:从模块配置到拦截器实战

HttpClient是Angular应用中处理HTTP通信的核心抽象,它并非简单封装fetch或XMLHttpRequest,而是基于依赖注入、可拦截、类型安全与响应式编程构建的声明式通信基础设施。其设计围绕@angular/common/http模块展开,依赖HttpClientModule注册服务链,通过HttpInterceptor实现横切逻辑编排,并以HttpErrorResponse统一错误分类。相比传统AJAX工具,它强调开发体验、可维护性与团队协作确定性,广泛应用于微前端通信层重构、JWT令牌

weixin_30296405的博客 386

【实验必备】对AffectNet数据集进行人脸对齐的小Demo

本文首先简单介绍了AffectNet数据集,及人脸关键点等背景知识,接着Po出了人脸对齐的代码及效果展示。注:本文代码参考自FG2021的Emotion-GCN的开源代码,具有一定的可靠性,欢迎大家学习!

信小海 2670

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java免_java实现https免证书认证

解决方法:1.下载两个包,httpclient-4.2.jar和httpcore-4.2.jar,复制以下代码就可使用。2.调用类代码:String httpOrgCreateTest = "https://url";Map createMap = new HashMap();createMap.put("name","8888888");createMap.put("num","11111");...

weixin_32570803的博客 345

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jeecg-boot-base-core config 04

本文解析了JeecgBoot框架的关键配置设计,涵盖权限认证、多租户、WebMVC等核心模块。系统通过分层配置类实现技术栈隔离,采用条件装配(@Conditional)实现环境切换能力,支持动态扩展。其中,Shiro+JWT权限链需手动配置60+URL白名单,MyBatis-Plus通过拦截器实现多租户隔离,Druid监控页需定制化去广告。配置体系遵循"约定大于配置"原则,通过YAML驱动JavaBean初始化,同时保持类型安全。优点包括关注点分离、依赖注入、开闭原则支持,但也存在白名单

weixin_47759174的博客 225

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java 创建HttpClient,忽略ssl认证

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34226182的博客 506

JAVA利用HttpClient进行HTTPS接口调用

1.为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程。   import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl.T

杜海的博客 2553

Auth2 scope 权限控制

【代码】Auth2 scope 权限控制。

tanzongbiao的专栏 341

如何使用HttpClient认证机制(转)

转自:http://www.cnblogs.com/huqingyu/archive/2008/02/17/1071649.html HttpClient三种不同的认证方案: Basic, Digest and NTLM. 这些方案可用于服务器或代理对客户端的认证,简称服务器认证或代理认证。 1.服务器认证(Server Authentication) HttpClient处理服务器认证几...

技术是一门学问 347

HttpClient支持哪几种身份验证方案呢?

HttpClient支持哪几种身份验证方案呢?

qq_25073223的博客 944

soap get/post请求

pom.xml依赖: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version></dependency>...

weixin_30632899的博客 830

HttpClient用户身份验证

使用HttpClient,您可以连接到需要用户名和密码的网站。本章介绍如何针对要求输入用户名和密码的站点执行客户端请求。对象设置为客户端构建器,方法是将其传递给CredentialsProvider object()方法,如下所示。以下是一个示例程序,演示了针对需要用户身份验证的目标站点执行HTTP请求。- 创建CredentialsProvider对象。- 创建一个HttpGet对象并执行它。方法为主机和代理设置凭据,如下所示 -类(此接口的默认实现)来创建其对象。此方法接受以下给出的两个对象 -

unber的博客 1144

httpclient之basic认证

本文主要说明如何使用httpclient进行basic认证。 我们常用的登录是form形式,但也有的登录采用的basic认证,比如activeMq默认就是basic认证。 private final static CloseableHttpClient getBasicHttpClient(String username,String password) { // 创建HttpCl...

Donny的专栏 2327

PowerMockito实践<二>

概述: PowerMockito擅长mock静态类/静态方法/私有方法/构造器 1. 当给spy的类设桩时,最好使用doReturn / doThrow / doNothing(只适应于返回void的方法)等,使用thenReturn/thenThrow可能会产生一些错误, 参考示例代码:testStub4SpyClass; 2. 当给静态方法设桩时,使用thenReturn/ t

Extra_warrior的博客 5689
上一篇: PowerMockito实践<二>
下一篇: jQuery开发笔记
walker-undef
博客等级 码龄12年 93粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值