欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java發(fā)送http請(qǐng)求調(diào)用第三方接口獲取token方式

 更新時(shí)間:2023年07月15日 16:40:55   作者:是小帥吖i  
這篇文章主要介紹了Java發(fā)送http請(qǐng)求調(diào)用第三方接口獲取token方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java發(fā)送http請(qǐng)求調(diào)用第三方接口獲取token

最近在做項(xiàng)目對(duì)接,因?yàn)橐l繁調(diào)用第三方的接口,所以就整理了一下代碼

話(huà)不多說(shuō)直接上代碼

 public static String httpURLConnectionPOST (String url, String data) {
        StringBuffer strBf = new StringBuffer();
        try {
            URL realUrl = new URL(url);
            //將realUrl以 open方法返回的urlConnection  連接強(qiáng)轉(zhuǎn)為HttpURLConnection連接  (標(biāo)識(shí)一個(gè)url所引用的遠(yuǎn)程對(duì)象連接)
            HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();// 此時(shí)cnnection只是為一個(gè)連接對(duì)象,待連接中
            //設(shè)置連接輸出流為true,默認(rèn)false (post請(qǐng)求是以流的方式隱式的傳遞參數(shù))
            connection.setDoOutput(true);
            //設(shè)置連接輸入流為true
            connection.setDoInput(true);
            //設(shè)置請(qǐng)求方式為post
            connection.setRequestMethod("POST");
            //post請(qǐng)求緩存設(shè)為false
            connection.setUseCaches(false);
            //設(shè)置該HttpURLConnection實(shí)例是否自動(dòng)執(zhí)行重定向
            connection.setInstanceFollowRedirects(true);
            //設(shè)置請(qǐng)求頭里面的各個(gè)屬性 (以下為設(shè)置內(nèi)容的類(lèi)型,設(shè)置為經(jīng)過(guò)urlEncoded編碼過(guò)的from參數(shù))
            connection.setRequestProperty("Content-Type", "application/json;charset=utf-8");
            //建立連接 (請(qǐng)求未開(kāi)始,直到connection.getInputStream()方法調(diào)用時(shí)才發(fā)起,以上各個(gè)參數(shù)設(shè)置需在此方法之前進(jìn)行)
            connection.connect();
            //創(chuàng)建輸入輸出流,用于往連接里面輸出攜帶的參數(shù),(輸出內(nèi)容為?后面的內(nèi)容)
            DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());
            String query = data.toString();
            //將參數(shù)輸出到連接
            dataout.write(query.getBytes("UTF-8"));
            // 輸出完成后刷新并關(guān)閉流
            dataout.flush();
            dataout.close(); // 重要且易忽略步驟 (關(guān)閉流,切記!)
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
            String lines;
            while ((lines = reader.readLine()) != null) {
                lines = new String(lines.getBytes(), "utf-8");
                strBf.append(lines);
            }
            reader.close();
            connection.disconnect();
            System.out.println("返回?cái)?shù)據(jù):"+strBf.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return strBf.toString();
    }

測(cè)試

自己寫(xiě)一個(gè)main方法進(jìn)行測(cè)試

  public static void main(String[] args) {
        String strJson = httpURLConnectionPOST("URL","data");
        JSONObject jsonObject = JSONObject.parseObject(strJson);
        System.out.println("json"+jsonObject);
    }

返回?cái)?shù)據(jù)為json類(lèi)型

如何減少使用第三方接口調(diào)用是token的獲得

我們開(kāi)發(fā)經(jīng)常會(huì)遇到要使用第三方的接口,且這些接口都需要在請(qǐng)求頭上帶上Authorization - Bearer token這樣的驗(yàn)證信息;

假如我們每次都獲取token那會(huì)導(dǎo)致每次都會(huì)生成新的token,增加了調(diào)用次數(shù);

減少調(diào)用次數(shù)的辦法

在登錄的時(shí)候獲取token(這個(gè)時(shí)候類(lèi)中就賦值token),再把token存儲(chǔ)進(jìn)redis(判斷過(guò)期)

步驟:

1.定義獲取第三方token的類(lèi),定義一個(gè)屬性為sxtoken;

2.在獲取第三方token的類(lèi)中定義獲得token的方法,然后賦值給屬性sxtoken;

3.在登錄方法中,吧第三方接口的token存儲(chǔ)進(jìn)Redis中;

4.在獲取第三方token的類(lèi)中定義判斷屬性sxtoken為空的時(shí)候,從緩存獲得的方法;

5.調(diào)用第三方接口的時(shí)候都先試用第4步,防止sxtoken為null

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot整合Canal與RabbitMQ監(jiān)聽(tīng)數(shù)據(jù)變更記錄

    SpringBoot整合Canal與RabbitMQ監(jiān)聽(tīng)數(shù)據(jù)變更記錄

    這篇文章主要介紹了SpringBoot整合Canal與RabbitMQ監(jiān)聽(tīng)數(shù)據(jù)變更記錄,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Java操作Elasticsearch?rest-high-level-client?的基本使用

    Java操作Elasticsearch?rest-high-level-client?的基本使用

    這篇文章主要介紹了Java操作Elasticsearch?rest-high-level-client?的基本使用,本篇主要講解一下?rest-high-level-client?去操作?Elasticsearch的方法,結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • java抓取網(wǎng)頁(yè)數(shù)據(jù)示例

    java抓取網(wǎng)頁(yè)數(shù)據(jù)示例

    要通java獲取整個(gè)網(wǎng)頁(yè)的html內(nèi)容,或者某個(gè)網(wǎng)絡(luò)文件的內(nèi)容,可以使用java提供的HttpURLConnection類(lèi)來(lái)實(shí)現(xiàn)對(duì)網(wǎng)頁(yè)內(nèi)容的抓取
    2014-03-03
  • Java解決刪除字符使頻率相同問(wèn)題

    Java解決刪除字符使頻率相同問(wèn)題

    給你一個(gè)下標(biāo)從0開(kāi)始的字符串 word ,字符串只包含小寫(xiě)英文字母,你需要選擇一個(gè)下標(biāo)并刪除下標(biāo)處的字符,使得word中剩余每個(gè)字母出現(xiàn)頻率相同,本文給大家介紹了Java解決刪除字符使頻率相同問(wèn)題,需要的朋友可以參考下
    2024-02-02
  • CentOS8.2安裝Java 14.0.2的教程詳解

    CentOS8.2安裝Java 14.0.2的教程詳解

    這篇文章主要介紹了CentOS8.2安裝Java 14.0.2的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Spring boot中mongodb的使用

    Spring boot中mongodb的使用

    MongoDB是最早熱門(mén)非關(guān)系數(shù)據(jù)庫(kù)的之一,使用也比較普遍,一般會(huì)用做離線(xiàn)數(shù)據(jù)分析來(lái)使用,放到內(nèi)網(wǎng)的居多。這篇文章主要介紹了Spring boot中mongodb的使用,需要的朋友可以參考下
    2017-05-05
  • springboot?web項(xiàng)目中?Set-Cookie?失敗原因及解決辦法

    springboot?web項(xiàng)目中?Set-Cookie?失敗原因及解決辦法

    這篇文章主要介紹了springboot?web項(xiàng)目中?Set-Cookie?失敗原因及解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • 深入理解Java new String()方法

    深入理解Java new String()方法

    今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著Java new String()展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 如何基于js及java分析并封裝排序算法

    如何基于js及java分析并封裝排序算法

    這篇文章主要介紹了如何基于js及java分析并封裝排序算法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Springboot打印接口的三種方式分享

    Springboot打印接口的三種方式分享

    這篇文章主要為大家詳細(xì)介紹了Springboot打印接口的三種方式:aop切面的方式、過(guò)濾器的方式和攔截器的方式,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08

最新評(píng)論