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

Restample使用http访问https接口

客户端想通过http就访问https的接口,可以配置restample跳过证书校验。注意,这种方式不安全,只能用在测试环境。

1.maven依赖

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

2. resTemplate 配置


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.conn.ssl.NoopHostnameVerifier;

/**
 * RestTemplate配置
 */
@Configuration
public class RestConfig {

    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
        return new RestTemplate(factory);
    }


    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
        try {
            // 创建SSLContext
            SSLContextBuilder builder = new SSLContextBuilder();
            builder.loadTrustMaterial(null, (certificate, authType) -> true);

            // 设置HttpClientBuilder以使用SSL
            HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
            httpClientBuilder.setSslcontext(builder.build());
            httpClientBuilder.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE);

            // 创建HttpComponentsClientHttpRequestFactory
            HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
            requestFactory.setHttpClient(httpClientBuilder.build());
            return requestFactory;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

3.

@Slf4j
@Configuration
public class RestComponment {
    @Autowired
    RestTemplate restTemplate;

    @Autowired
    FreemarkerComponent freemarkerComponent;


    public String getByNameOrCertCode(String compNameOrCertCode) {
        HttpHeaders requestHeaders = new HttpHeaders();
        HttpEntity httpEntity = new HttpEntity(requestHeaders);
        HttpEntity<String> response = restTemplate.exchange(
                "https://www.hello.com/nsearch?key={companyName}",
                HttpMethod.GET,
                httpEntity,
                String.class,
                compNameOrCertCode
        );
        Document document = Jsoup.parse(response.getBody());
        Elements scriptsElements = document.select("script");

       


http://www.kler.cn/news/310457.html

相关文章:

  • 【AI战略思考0】导言
  • 【FFT】信号处理——快速傅里叶变换【通俗易懂】
  • 多层感知机——pytorch与paddle实现多层感知机
  • Java发邮件:如何配置SMTP服务器实现发信?
  • 【项目一】基于pytest的自动化测试框架———解读requests模块
  • C# 修改项目类型 应用程序程序改类库
  • IOS 24 实现歌单详情(UITableView)列表
  • 下载Kafka 3.0.0教程
  • 基于Matlab的模拟答题卡识别阅卷可以识别指定答题卡的各个部分-界面
  • Day04_JVM实战
  • 开发定制:学校考试成绩自动处理,可定制规则
  • 2024桥梁科技两江论坛——第二届桥梁工程安全与韧性学术会议
  • laravel public 目录获取
  • 如何在 Fork 的 GitHub 项目中保留自己的修改并同步上游更新?github_fork_update
  • 如何使用麦肯锡方法解决软件的BUG和运维管理?
  • 基于微信小程序的游泳馆管理系统--论文源码调试讲解
  • SSL证书选择指南:免费 vs 付费
  • 【vue2】v-scale-screen大屏自适应组件
  • QCustomPlot笔记(一)
  • 2024年9月python二级易错题和难题大全(附详细解析)(二)
  • android 14.0 Launcher3长按拖拽时,获取当前是哪一屏,获取当前多少个应用图标
  • Hugging Face NLP课程学习记录 - 2. 使用 Hugging Face Transformers
  • Canvas简历编辑器-Monorepo+Rspack工程实践
  • 使用PaddleNLP调用大模型ChatGLM3-6b进行信息抽取
  • Oracle事物
  • 线性代数之QR分解和SVD分解
  • ShouldSniffAttr在自动化测试中具体是如何应用?
  • mysql事务的隔离级别学习
  • Selenium实现滑动滑块验证码验证!
  • 交换机最常用的网络变压器分为DIP和SM