国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Springboot調(diào)用http(https)接口小妙招,新手小白版

這篇具有很好參考價(jià)值的文章主要介紹了Springboot調(diào)用http(https)接口小妙招,新手小白版。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

有的新手彥祖在搬磚過程中會(huì)遇到調(diào)用別人接口來獲取數(shù)據(jù)的需求,這其中涉及調(diào)用一些相關(guān)類及方法的調(diào)用,最近干活又要用這個(gè)了,把以前的代碼搬出來套用下,死活報(bào)錯(cuò)協(xié)議加密證書啥的問題,真想感嘆卑微打工仔掙點(diǎn)錢養(yǎng)家糊口不容易。無所謂,我?guī)煾禃?huì)出手,過來一眼就看出我的問題,我用的http協(xié)議寫的,人家接口測(cè)試環(huán)境是https協(xié)議寫的,https協(xié)議有加密方式,去參照大佬的寫法封裝整理了兩個(gè)類。開發(fā)差不多完成后在這記錄分享下,不多bb直接上源碼了。

package com.inspur.dehongtf.controller.http_data_get;

import com.alibaba.fastjson.JSONObject;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.ssl.TrustStrategy;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

import javax.net.ssl.SSLContext;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Map;

public class httpsRequest {

    public JSONObject send2(String url, Map<String, Object> params) {
           HttpHeaders headers = new HttpHeaders();
           headers.setContentType(MediaType.APPLICATION_JSON);
           headers.setAccept(Arrays.asList(MediaType.ALL));
           HttpEntity<Object> entity = new HttpEntity<>(JSONObject.toJSONString(params), headers);
           try {
                String body = getRestTemplate().postForObject(url, entity, String.class);
                return JSONObject.parseObject(body);
              }

           catch (Exception e) {
                e.printStackTrace();
                               }
           return null;
    }

    public static RestTemplate getRestTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
               SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
               @Override
               public boolean isTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { return true;
               }
        }).build();

        SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext,
                new String[]{"TLSv1"},
                null,
                NoopHostnameVerifier.INSTANCE);

        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLSocketFactory(csf)
                .build();

        HttpComponentsClientHttpRequestFactory requestFactory =
                new HttpComponentsClientHttpRequestFactory();

        requestFactory.setHttpClient(httpClient);
        RestTemplate restTemplate = new RestTemplate(requestFactory);
        return restTemplate;
    }
}

以上是一個(gè)自己再次封裝的用于調(diào)用https協(xié)議的類,send2方法調(diào)用了getRestTemplate方法,在測(cè)試類中調(diào)用時(shí)傳入兩個(gè)參數(shù),其一是String類型的url,其二是指定泛型的map集合,也就是post的請(qǐng)求參數(shù),對(duì)了,這個(gè)方法目前只適用于post方法。

如果有彥祖在看,順便給彥祖?zhèn)儨y(cè)試下

springboot調(diào)用https接口,SpringBoot開發(fā),http,spring boot,https,Powered by 金山文檔
springboot調(diào)用https接口,SpringBoot開發(fā),http,spring boot,https,Powered by 金山文檔
springboot調(diào)用https接口,SpringBoot開發(fā),http,spring boot,https,Powered by 金山文檔

這里定義并書寫了參數(shù)和url,實(shí)例化上面的httpsRequest類,傳入url和請(qǐng)求參數(shù)調(diào)用send2方法,得到的結(jié)果就是在url接口指定參數(shù)下的數(shù)據(jù),下面輸出看一下

springboot調(diào)用https接口,SpringBoot開發(fā),http,spring boot,https,Powered by 金山文檔

在控制層調(diào)用上面類的getParams方法,得到返回?cái)?shù)據(jù),啟動(dòng)工程,postman調(diào)用自己的接口,輸出看一下數(shù)據(jù),沒問題。

springboot調(diào)用https接口,SpringBoot開發(fā),http,spring boot,https,Powered by 金山文檔

這里我也寫了一個(gè)http的類,但是好像https這個(gè)類能共用http與https,深層原理咱也不知道,http類如下,難免以后找不到了,又被同事說:多刪幾個(gè)妹子,不要?jiǎng)h代碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-535799.html

package com.inspur.dehongtf.controller.http_data_get;

import com.alibaba.fastjson.JSONObject;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

import java.util.Map;

public class httpRequest {
    public JSONObject send1(String url, Map<String, Object> params) {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
        RestTemplate restTemplate = new RestTemplate();
        JSONObject obj = new JSONObject(params);
        String s = obj.toString();
        HttpEntity request = new HttpEntity(s, headers);
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, request, String.class, new Object[0]);
        JSONObject responseData = JSONObject.parseObject((String)responseEntity.getBody());
        return responseData;
}

}

到了這里,關(guān)于Springboot調(diào)用http(https)接口小妙招,新手小白版的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ABAP - 調(diào)用HTTP/HTTPS接口上傳文件

    如果調(diào)用該外部接口是需要使用Oauth2.0的話,可參照該文章里的OAuth2.0的部分: ABAP代碼使用OAuth2.0 Client Credential調(diào)用外部API 首先,先將文件內(nèi)容轉(zhuǎn)成binary格式的內(nèi)表 , 可參照文章: 內(nèi)表文件的,可參照ABAP - 下載ALV內(nèi)表 - download ALV internal table SOST里的附件的,可參照ABAP獲取發(fā)

    2024年02月20日
    瀏覽(22)
  • SpringBoot將http轉(zhuǎn)換成https

    SpringBoot將http轉(zhuǎn)換成https

    首先看項(xiàng)目,如果有nginx代理,則只需要改nginx配置即可。 如果沒有nginx代理,則直接在springboot的resource下增加一個(gè)p12文件或者jks文件。 這里用p12來進(jìn)行演示: 首先要獲得ssl證書,命令查看是否有openssl 這里我的版本是3,會(huì)有一個(gè)bug,當(dāng)生成p12文件運(yùn)行時(shí)會(huì)報(bào)錯(cuò):ObjectIdentifi

    2024年02月01日
    瀏覽(19)
  • springboot項(xiàng)目同時(shí)支持http和https訪問

    springboot項(xiàng)目同時(shí)支持http和https訪問

    前提是電腦安裝了JDK并配置了環(huán)境變量,打開CMD,并 輸入 密碼和證書內(nèi)容根據(jù)自己情況可以自定義( 我設(shè)置的密碼是:dev123 ),如圖所示: 以上操作后即生成證書,證書位置在cmd的路徑位置,一般在路徑C:UsersAdministratorserver.keystore 將 文件 server.keystore 復(fù)制到 Springboot項(xiàng)目

    2024年04月23日
    瀏覽(23)
  • SpringBoot 調(diào)用外部接口

    SpringBoot 調(diào)用外部接口

    一個(gè)系統(tǒng)肯定少不了要和外部系統(tǒng)進(jìn)行通信,所以就必須得訪問外部接口。 本次演示的是使用的是 高德天氣api接口 使用插件方式,比如自帶的HttpClient,或者OkHttp,甚至是原生的HttpURLConnection 等等,這里以HttpClient為例。 1、封裝工具類 簡(jiǎn)單封裝的get請(qǐng)求 2、測(cè)試方法 3、結(jié)果

    2024年02月09日
    瀏覽(24)
  • SpringBoot 3.1 新版HTTP調(diào)用

    SpringBoot 3.1 新版HTTP調(diào)用

    在SpringBoot3版本發(fā)布后 官方便聲明了推薦使用了內(nèi)置聲明式的HTTP客戶端。 一、聲明式HTTP客戶端使用(依賴引入) 二、被調(diào)用方編寫(粗略代碼邏輯) 三、調(diào)用方 HTTP端點(diǎn)編寫 四、 工具類封裝 五、調(diào)用地址定義常量 ??六、業(yè)務(wù)調(diào)用代碼編寫 七、調(diào)用接口 八、請(qǐng)求示例以及響應(yīng)

    2024年02月12日
    瀏覽(13)
  • springboot添加SSL證書,支持https與http

    springboot添加SSL證書,支持https與http

    將證書文件放在/resource目錄下 修改配置文件

    2024年02月10日
    瀏覽(28)
  • 【SpringBoot18】SpringBoot 調(diào)用外部接口的三種方式

    【SpringBoot18】SpringBoot 調(diào)用外部接口的三種方式

    SpringBoot不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡(jiǎn)化配置來進(jìn)一步簡(jiǎn)化了Spring應(yīng)用的整個(gè)搭建和開發(fā)過程。在Spring-Boot項(xiàng)目開發(fā)中,存在著本模塊的代碼需要訪問外面模塊接口,或外部url鏈接的需求, 比如在apaas開發(fā)過程中需要封裝接口在接口中調(diào)用apaas提供的接口(

    2023年04月11日
    瀏覽(35)
  • Nginx配置springboot+vue項(xiàng)目http跳轉(zhuǎn)https

    Nginx配置springboot+vue項(xiàng)目http跳轉(zhuǎn)https

    java生成證書 添加依賴 復(fù)制keystore到springboot資源目錄,修改application.yml配置 ?啟動(dòng)項(xiàng)目 nginx配置 開啟ssl ? ? 重啟nginx -s reload 訪問localhost:81將跳轉(zhuǎn)到https://localhost/login?redirect=/index ?

    2024年02月12日
    瀏覽(25)
  • SpringBoot項(xiàng)目(Tomcat啟動(dòng)https端口)——springboot配置Tomcat兩個(gè)端口,https和http的方式 & jar的打包和運(yùn)行

    SpringBoot項(xiàng)目(Tomcat啟動(dòng)https端口)——springboot配置Tomcat兩個(gè)端口,https和http的方式 & jar的打包和運(yùn)行

    1.springboot配置Tomcat兩個(gè)端口,https和http的方式; 2.在https協(xié)議下,發(fā)送axios請(qǐng)求沒反應(yīng),暫時(shí)用form表單解決; 3.運(yùn)行jar包template might not exist報(bào)錯(cuò)及解決; 代碼位置: https://gitcode.net/Pireley/springboot-tomcat-http-https 嚴(yán)格來說https不是一個(gè)獨(dú)立協(xié)議,只是在http協(xié)議基礎(chǔ)上增加了SSL/T

    2024年02月03日
    瀏覽(30)
  • SpringBoot 項(xiàng)目中 對(duì)http調(diào)用異常處理

    spring 中 http調(diào)用 resp 會(huì)返回3個(gè)值 status/heard/body 分2種情況的異常 1.status 代表了通信異常, 也是我們常說的 http 狀態(tài)碼 ? ? ? ? 只能是純數(shù)字 ? ? ? ? 200-成功, 404-不能訪問的資源, 500-服務(wù)器異常 ? ? ? ? 比較坑的是, 有些服務(wù)會(huì), 把業(yè)務(wù)異常和這個(gè)進(jìn)行合并, 或者篡改? 2.bod

    2024年02月17日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包