最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot中使用okhttp3的小結(jié)

 更新時(shí)間:2025年09月12日 09:29:14   作者:hero.fei  
OkHttp3是一個(gè)Java HTTP客戶端,可以處理各種請(qǐng)求類型,比如 GET、POST、PUT 等,并且支持高效的 HTTP 連接池、請(qǐng)求和響應(yīng)緩存、以及異步請(qǐng)求處理等,感興趣的可以了解一下

在 Spring Boot 項(xiàng)目中使用 OkHttp3 進(jìn)行 HTTP 請(qǐng)求是一個(gè)高效且流行的方式。OkHttp3 是一個(gè) Java HTTP 客戶端,可以處理各種請(qǐng)求類型,比如 GET、POST、PUT 等,并且支持高效的 HTTP 連接池、請(qǐng)求和響應(yīng)緩存、以及異步請(qǐng)求處理等。

maven項(xiàng)目中首先是需要引入pom文件:

<dependencies>
    <!-- OkHttp3 dependency -->
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>4.9.0</version> <!-- 使用最新的穩(wěn)定版本 -->
    </dependency>
</dependencies>

創(chuàng)建OkHttpClient配置類

接下來(lái),你可以在 Spring Boot 中創(chuàng)建一個(gè)配置類,用于配置 OkHttpClient 實(shí)例。這是為了方便地進(jìn)行請(qǐng)求處理和注入到 Spring 中。如果項(xiàng)目中用的地方比較多就封裝成一個(gè)bean在使用的時(shí)候通過(guò)spring的注入方式即可使用,如果是臨時(shí)用一下可以直接在class中創(chuàng)建,通過(guò)static代碼塊初始化。

注冊(cè)bean的方式:

@Configuration
public class OkHttpConfig {

    // 創(chuàng)建 OkHttpClient Bean
    @Bean
    public OkHttpClient okHttpClient() {
//可以引入線程池單獨(dú)線程調(diào)用
         CONNECTION_POOL = new ConnectionPool(1024, 5, TimeUnit.MINUTES);
        OK_HTTP_CLIENT = new OkHttpClient.Builder()
                .connectionPool(CONNECTION_POOL)
                .connectTimeout(10, TimeUnit.SECONDS)
                .readTimeout(1, TimeUnit.MINUTES)
                .retryOnConnectionFailure(true)
                .pingInterval(Duration.ofSeconds(59))
                .build();
    }
}

在class類中直接使用:

@Slf4j
@Service
public class http3Test {

    // 余額最大空閑時(shí)間
    private final static int idleTime = 60 * 60 * 24;

    private static final OkHttpClient OK_HTTP_CLIENT;
    private static final ConnectionPool CONNECTION_POOL;

    static {
        CONNECTION_POOL = new ConnectionPool(1024, 5, TimeUnit.MINUTES);
        OK_HTTP_CLIENT = new OkHttpClient.Builder()
                .connectionPool(CONNECTION_POOL)
                .connectTimeout(10, TimeUnit.SECONDS)
                .readTimeout(1, TimeUnit.MINUTES)
                .retryOnConnectionFailure(true)
                .pingInterval(Duration.ofSeconds(59))
                .build();
    }

發(fā)送get請(qǐng)求:

@Service
public class OkHttpService {

    @Autowired
    private OkHttpClient okHttpClient;

    public String sendGetRequest(String url) throws IOException {
        // 構(gòu)建請(qǐng)求
        Request request = new Request.Builder()
                .url(url)
                .build();

        // 執(zhí)行請(qǐng)求并獲取響應(yīng)
        try (Response response = okHttpClient.newCall(request).execute()) {
            if (response.isSuccessful()) {
                // 返回響應(yīng)體內(nèi)容
                return response.body().string();
            } else {
                return "Request failed with code: " + response.code();
            }
        }
    }
}

發(fā)送post請(qǐng)求:

@Service
public class OkHttpService {

    @Autowired
    private OkHttpClient okHttpClient;

    public String sendPostRequest(String url, String jsonBody) throws IOException {
        // 創(chuàng)建請(qǐng)求體
        RequestBody body = RequestBody.create(jsonBody,   MediaType.get("application/json; charset=utf-8"));

        // 構(gòu)建請(qǐng)求
        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .build();

        // 執(zhí)行請(qǐng)求并獲取響應(yīng)
        try (Response response = okHttpClient.newCall(request).execute()) {
            if (response.isSuccessful()) {
                // 返回響應(yīng)體內(nèi)容
                return response.body().string();
            } else {
                return "Request failed with code: " + response.code();
            }
        }
    }
}

另外還可以發(fā)送異步請(qǐng)求,不需要使用使用 execute調(diào)用http3提供的enqueue方法

import okhttp3.*;

public class AsyncOkHttpService {

    private OkHttpClient okHttpClient = new OkHttpClient();

    public void sendAsyncGetRequest(String url) {
        Request request = new Request.Builder().url(url).build();

        okHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                System.out.println("Request failed: " + e.getMessage());
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (response.isSuccessful()) {
                    System.out.println("Response: " + response.body().string());
                } else {
                    System.out.println("Request failed with code: " + response.code());
                }
            }
        });
    }
}

到此這篇關(guān)于springboot中使用okhttp3的小結(jié)的文章就介紹到這了,更多相關(guān)springboot使用okhttp3內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于SpringBoot使用Tika實(shí)現(xiàn)文檔解析

    基于SpringBoot使用Tika實(shí)現(xiàn)文檔解析

    Apache?Tika是開源內(nèi)容分析工具,支持多格式文本提取與元數(shù)據(jù)解析,具備語(yǔ)言檢測(cè)和MIME類型識(shí)別功能,適用于搜索引擎、數(shù)據(jù)分析等場(chǎng)景,在SpringBoot中集成需注意性能及配置問(wèn)題,支持流式處理和自定義擴(kuò)展,下面介紹SpringBoot使用Tika實(shí)現(xiàn)文檔解析,感興趣的朋友一起看看吧
    2025-07-07
  • 關(guān)于Spring中@Transactional事務(wù)回滾的注意事項(xiàng)

    關(guān)于Spring中@Transactional事務(wù)回滾的注意事項(xiàng)

    這篇文章主要介紹了關(guān)于Spring中@Transactional事務(wù)回滾的注意事項(xiàng),回滾(Rollback)指的是程序或數(shù)據(jù)處理錯(cuò)誤,將程序或數(shù)據(jù)恢復(fù)到上一次正確狀態(tài)的行為?;貪L包括程序回滾和數(shù)據(jù)回滾等類型,需要的朋友可以參考下
    2023-05-05
  • Java對(duì)zip,rar,7z文件帶密碼解壓實(shí)例詳解

    Java對(duì)zip,rar,7z文件帶密碼解壓實(shí)例詳解

    在日常業(yè)務(wù)中,會(huì)遇到一些瑣碎文件需要打包到一個(gè)壓縮包中上傳,業(yè)務(wù)方在后臺(tái)接收到壓縮包后自行解壓,然后解析相應(yīng)文件。而且可能涉及安全保密,因此會(huì)在壓縮時(shí)帶上密碼,要求后臺(tái)業(yè)務(wù)可以指定密碼進(jìn)行解壓。本文將用Java解決這一問(wèn)題,需要的可以參考一下
    2022-07-07
  • java線程池中線程數(shù)量到底是幾

    java線程池中線程數(shù)量到底是幾

    本文主要介紹了java線程池中線程數(shù)量到底是幾,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 詳解利用spring-security解決CSRF問(wèn)題

    詳解利用spring-security解決CSRF問(wèn)題

    這篇文章主要介紹了詳解利用spring-security解決CSRF問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • oracle+mybatis-plus+springboot實(shí)現(xiàn)分頁(yè)查詢的實(shí)例

    oracle+mybatis-plus+springboot實(shí)現(xiàn)分頁(yè)查詢的實(shí)例

    本文主要介紹了oracle+mybatis-plus+springboot實(shí)現(xiàn)分頁(yè)查詢,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • SpringBoot居然有44種應(yīng)用啟動(dòng)器,你都知道嗎

    SpringBoot居然有44種應(yīng)用啟動(dòng)器,你都知道嗎

    很多人都不知道SpringBoot應(yīng)用啟動(dòng)器竟然有44個(gè),本文就一起來(lái)介紹一下,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • JavaWeb驗(yàn)證碼校驗(yàn)功能代碼實(shí)例

    JavaWeb驗(yàn)證碼校驗(yàn)功能代碼實(shí)例

    這篇文章主要介紹了JavaWeb驗(yàn)證碼校驗(yàn)功能代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java對(duì)int[]數(shù)組做新增刪除去重操作代碼

    Java對(duì)int[]數(shù)組做新增刪除去重操作代碼

    這篇文章主要介紹了Java里面對(duì)int[]數(shù)組做新增刪除去重實(shí)現(xiàn),這里記錄下使用int[]數(shù)組對(duì)數(shù)組進(jìn)行新增刪除去重等操作,用來(lái)更加了解java里面的集合類思想,需要的朋友可以參考下
    2023-10-10
  • 詳解SpringBoot中自定義和配置攔截器的方法

    詳解SpringBoot中自定義和配置攔截器的方法

    今天這篇文章來(lái)介紹一下攔截器在SpringBoot中的如何自定義及如何配置的,攔截器的具體作用和應(yīng)用場(chǎng)景,感興趣的小伙伴可以了解一下
    2022-05-05

最新評(píng)論

金昌市| 昌黎县| 搜索| 江达县| 蓬安县| 抚顺市| 碌曲县| 从化市| 万盛区| 资阳市| 广宗县| 信丰县| 城口县| 尼勒克县| 利津县| 色达县| 江川县| 白水县| 彩票| 梧州市| 麦盖提县| 五台县| 玉田县| 巴林右旗| 永靖县| 台南县| 娱乐| 盱眙县| 林口县| 承德市| 深水埗区| 民乐县| 诏安县| 东乡县| 庄河市| 久治县| 搜索| 峨眉山市| 兴安县| 黎城县| 恭城|