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

jdk8使用okhttp發(fā)送http2請求

這篇具有很好參考價值的文章主要介紹了jdk8使用okhttp發(fā)送http2請求。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文主要用于工作記錄,在項目中遇到了就記錄一下

在早期,原生的JDK8是不支持HTTP/2協(xié)議的,所以,要想使用這個特性,需要有web服務(wù)器和應(yīng)用環(huán)境的支持,
例如:在VM中增加-Xbootclasspath/p:/Users/a1234/Downloads/alpn-boot-8.1.11.v20170118.jar來配合使用

但是從8u252開始,ALPN層已經(jīng)從Java 11向后移植到了Java 8。意味著,只要使用Java
8u252或更新版本,不再要求使用Conscrypt和Jetty就可以使用HTTP/2了。

重點來了:一定要先檢查自己的jdk版本是否大于8u252,然后就可以在項目中集成okhttp

項目pom配置

<!-- SpringBoot 依賴配置 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.7.2</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!-- okhttp 依賴配置 -->
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.9.3</version>
</dependency>

簡單封裝獲取http2client請求

 	/**
     * 獲取httpClient請求
     *
     * @param maxTotalConnections             最大連接數(shù)
     * @param connectionKeepAliveTimeInMillis 最長連接保持活動時間
     * @return
     */
    private static OkHttpClient createHttpClient(int maxTotalConnections, long connectionKeepAliveTimeInMillis) {
        ConnectionPool connectionPool = new ConnectionPool(maxTotalConnections, connectionKeepAliveTimeInMillis, TimeUnit.MILLISECONDS);
        return new OkHttpClient.Builder()
                .followRedirects(false)
//                .protocols(Collections.singletonList(Protocol.H2_PRIOR_KNOWLEDGE))
                .retryOnConnectionFailure(true)
                .connectionPool(connectionPool)
                .build();
    }

GET請求示例

	/**
     * GET請求示例
     *
     * @return
     * @throws IOException
     */
    private String getTokenResStr() throws IOException {
        Request request = new Request.Builder()
                .addHeader("Nonce",123)
                .addHeader("Authorization", configData.getAuthorizationCode())
                .url(“url地址”)
                .build();//GET by default
        OkHttpClient httpClient = createHttpClient(100, 30000);
        Response response = httpClient.newCall(request).execute();
        if (!response.isSuccessful()) {
            throw new IOException("Unexpected code " + response);
        }
        return response.body().string();
    }

POST請求示例文章來源地址http://www.zghlxwxcb.cn/news/detail-621754.html

	/**
     * POST請求示例
     *
     * @param orderId
     * @param tokenResStr
     * @return
     * @throws IOException
     */
    private String getOrderDetail(String orderId, String tokenResStr) throws IOException {
        JSONObject tokenRes = JSONObject.parseObject(tokenResStr);
        // token
        String accessToken = tokenRes.getString("access_token");
        // token類型
        String tokenType = tokenRes.getString("token_type");

        String authorizationStr = firstUpperCase(tokenType) + " " + accessToken;
        Request request = new Request.Builder()
                .addHeader("Authorization", authorizationStr)
                .addHeader("Content-Type", "application/json")
                .url(configData.getDetailRpcUrl() + orderId)
                .build();
        OkHttpClient httpClient = createHttpClient(100, 30000);
        Response response = httpClient.newCall(request).execute();
        if (!response.isSuccessful()) {
            throw new IOException("Unexpected code " + response);
        }
        return response.body().string();

到了這里,關(guān)于jdk8使用okhttp發(fā)送http2請求的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Docker 中 jdk8容器里無法使用 JDK 的 jmap 等命令的問題

    項目部署在 CentOS 服務(wù)器上。項目偶爾會出現(xiàn)無響應(yīng)的情況,這時理所當(dāng)然要上去用 JDK 相關(guān)命令看看堆棧和GC等信息了。 進入 Java 程序所在容器:docekr-compose exec api bash,進入到 api 容器的 bash 終端。 jps 打印 Java 進程: 嗯,jps 命令還是能正常使用的,api.jar 程序的進程號是

    2024年02月09日
    瀏覽(17)
  • java jdk8 switch case中無法使用枚舉問題解決

    java jdk8 switch case中無法使用枚舉問題解決

    之前常規(guī)寫法: 代碼會報錯: 此時在枚舉中添加方法: 代碼中改為: idea自編譯不報錯, 經(jīng)測試也可以用 枚舉完整代碼: 參考:?「Java基礎(chǔ)入門」Java中switch怎么使用枚舉 - 掘金

    2024年04月25日
    瀏覽(36)
  • 使用IDEA創(chuàng)建使用 JDK8 的 2.x.x 版本的 Spring Boot 項目以及 Spring Boot 項目如何修改JDK版本

    使用IDEA創(chuàng)建使用 JDK8 的 2.x.x 版本的 Spring Boot 項目以及 Spring Boot 項目如何修改JDK版本

    目錄 一、在阿里云上官網(wǎng)上創(chuàng)建項目 二、將 IDEA 中創(chuàng)建項目的源地址修改為阿里云官網(wǎng) 三、創(chuàng)建 3.x.x 的項目之后修改配置降低至 2.7.x 版本和使用 JDK8(修改 Spring Boot 的 JDK 版本同理) 從上面的 Spring Boot 官網(wǎng)的截圖中可以發(fā)現(xiàn),自 2023-11-24 之后,最后一個支持使用 JDK8 的

    2024年01月21日
    瀏覽(26)
  • OkHttp搞定Http請求

    官方文檔 倉庫 OkHttp是一款高效的HTTP客戶端框架: HTTP/2支持允許對同一主機的所有請求共享一個套接字。 連接池可以減少請求延遲(如果HTTP/2不可用)。 透明GZIP壓縮下載大小。 響應(yīng)緩存完全避免了重復(fù)請求的網(wǎng)絡(luò)。 當(dāng)網(wǎng)絡(luò)出現(xiàn)問題時,OkHttp會自動恢復(fù)一般的連接問題;若服務(wù)

    2024年02月02日
    瀏覽(17)
  • electron項目打包之后顯示空白頁面以及發(fā)送http請求地址錯誤

    ? ? ? ? electron項目在開發(fā)階段,因為使用webpack腳手架,啟用了webServer提供的http服務(wù),所以有路由功能,當(dāng)我們運行npm run electron:serve的時候,最后可以直接加載http://localhost:8080。在app里面就可以顯示頁面。 ? ? 當(dāng)electron項目打包之后,成為桌面程序,這個時候就沒有http服務(wù)支

    2024年02月13日
    瀏覽(26)
  • NIFI使用InvokeHTTP發(fā)送http請求

    NIFI使用InvokeHTTP發(fā)送http請求

    這里介紹四種平時常用的http請求方法:GET、POST、PUT、DELETE。 在官方的介紹文檔中關(guān)于InvokeHTTP處理器的描述是這么說的: An HTTP client processor which can interact with a configurable HTTP Endpoint. The destination URL and HTTP Method are configurable. FlowFile attributes are converted to HTTP headers and the FlowFile

    2024年02月09日
    瀏覽(28)
  • 使用Go發(fā)送HTTP POST請求

    使用Go發(fā)送HTTP POST請求

    在Go語言中,我們可以使用 net/http 包來發(fā)送HTTP POST請求。以下是一個簡單的示例,展示了如何使用Go發(fā)送HTTP POST請求并獲取響應(yīng)。 go 復(fù)制代碼 package ?main import ?( \\\"bytes\\\" ? \\\"fmt\\\" ? \\\"io/ioutil\\\" ? \\\"net/http\\\" ? ) func ? main () ?{ // 創(chuàng)建一個HTTP客戶端 client := http.Client{} // 創(chuàng)建一個POST請求

    2024年01月23日
    瀏覽(28)
  • 使用Go發(fā)送HTTP GET請求

    使用Go發(fā)送HTTP GET請求

    在Go語言中,我們可以使用 net/http 包來發(fā)送HTTP GET請求。以下是一個簡單的示例,展示了如何使用Go發(fā)送HTTP GET請求并獲取響應(yīng)。 go 復(fù)制代碼 package ?main import ?( \\\"fmt\\\" ? \\\"io/ioutil\\\" ? \\\"net/http\\\" ? ) func ? main () ?{ // 創(chuàng)建一個HTTP客戶端 client := http.Client{} // 創(chuàng)建一個GET請求 req, err :=

    2024年01月23日
    瀏覽(20)
  • C++使用HTTP庫和框架輕松發(fā)送HTTP請求

    C++使用HTTP庫和框架輕松發(fā)送HTTP請求

    使用C++編程發(fā)送HTTP請求通常需要使用第三方的HTTP庫或框架。在C++中,有幾個受歡迎的HTTP庫可供選擇,例如Curl、Boost.Beast和cpp-httplib。另外,也可以自己實現(xiàn)socket來發(fā)送http請求。 (1)安裝Curl庫 。 對于Debian/Ubuntu系統(tǒng): 對于RHEL/CentOS系統(tǒng): 對于macOS系統(tǒng): (2)編寫Curl代碼

    2024年02月02日
    瀏覽(23)
  • 使用瀏覽器發(fā)送HTTP POST請求

    使用瀏覽器發(fā)送HTTP POST請求

    HTTP請求有如下幾個分類,其中最常見和常用的是GET和POST請求。? 一般來說,使用瀏覽器地址欄訪問域名或ip時能且僅能向瀏覽器服務(wù)端發(fā)送get請求,如果需要發(fā)送POST請求或其他類型http請求需要借助接口工具譬如postman。 如果某個web應(yīng)用部署環(huán)境下缺少接口調(diào)試工具,該如何

    2024年02月11日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包