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

Java接收text/event-stream格式數(shù)據(jù)的詳細代碼

 更新時間:2023年07月20日 11:01:46   作者:明天我來了  
這篇文章主要介紹了java接收text/event-stream格式數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

java接收text/event-stream格式數(shù)據(jù),并且解決接收HTTPS會不是流式輸出問題

前段時間因為要對接語音轉文字接口,對方接口輸出的是text/event-stream返回,返回的是流式輸出,本人在百度找了好久,一直沒有找到關于怎么接收流式返回的文章,可能很多人不清楚流式輸出指的是什么,流式輸出是和對方建立一個長連接,接口方會一直不斷的給我們推送數(shù)據(jù),而不用等待對方接口完全輸出后在把返回值一次性返回。

先貼代碼

get請求

public String getEventStream(String urlStr, HttpServletResponse response) {
        long statr = System.currentTimeMillis();
        log.info("開始請求接口url:{}", urlStr);
        InputStream is = null;
        StringBuffer bu = new StringBuffer();
        try {
            URL url = new URL(urlStr);
            URLConnection conn = url.openConnection();
            is = conn.getInputStream();
            byte[] b = new byte[1024];
            int len = -1;
            long end = System.currentTimeMillis();
            log.info("接口url:{},請求開始流式輸出{}", urlStr, end - statr);
            while ((len = is.read(b)) != -1) {
                String line = new String(b, 0, len, "utf-8");
                // 處理 event stream 數(shù)據(jù)
                response.getWriter().write(line);
                response.getWriter().flush();
                bu.append(line);
            }
        } catch (IOException e) {
            log.error("請求模型接口異常", e);
            throw new BusinessException(ResponseCode.TOPIC_INITIATION_FAILED);
        } finally {
            if (!Objects.isNull(is)) {
                try {
                    //12.關閉輸入流
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return bu.toString();
    }

這里的urlStr參數(shù)是url加參數(shù),示例:https://baidu.com?text=12345678response是因為我需要同樣用流式輸出文字給前端,如果你不需要返回給前端,可以不用response參數(shù)。

post請求

public String postEventStream(String urlStr, String json, HttpServletResponse response) {
        long statr = System.currentTimeMillis();
        log.info("開始請求接口url:{},請求參數(shù){}", urlStr,json);
        InputStream is = null;
        //11.讀取輸入流中的返回值
        StringBuffer bu = new StringBuffer();
        try {
            //1.設置URL
            URL url = new URL(urlStr);
            //2.打開URL連接
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            //3.設置請求方式
            conn.setRequestMethod("POST");
            //4.設置Content-Type
            conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
            //5.設置Accept
            conn.setRequestProperty("Accept", "text/event-stream");
            //6.設置DoOutput
            conn.setDoOutput(true);
            //7.設置DoInput
            conn.setDoInput(true);
            //8.獲取輸出流
            OutputStream os = conn.getOutputStream();
            //9.寫入?yún)?shù)(json格式)
            os.write(json.getBytes("utf-8"));
            os.flush();
            os.close();
            //10.獲取輸入流
            is = conn.getInputStream();
            byte[] bytes = new byte[1024];
            int len = 0;
            long end = System.currentTimeMillis();
            log.info("接口url:{},請求參數(shù){},請求開始流式輸出{}", urlStr,json, end - statr);
            while ((len = is.read(bytes)) != -1) {
                String line = new String(bytes, 0, len, "utf-8");
                response.getWriter().write(line);
                response.getWriter().flush();
                bu.append(line);
            }
        } catch (IOException e) {
            log.error("請求模型接口異常", e);
            throw new BusinessException(ResponseCode.TOPIC_INITIATION_FAILED);
        } finally {
            if (!Objects.isNull(is)) {
                try {
                    //12.關閉輸入流
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return bu.toString();
    }

第一次寫文章,表達不好請諒解,這里使用的jdk版本是1.8,如果對于springboot怎么樣返回給前端流式輸出有疑問,可以私信問我

到此這篇關于Java接收text/event-stream格式數(shù)據(jù)的詳細代碼的文章就介紹到這了,更多相關java接收text/event-stream格式數(shù)據(jù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • hadoop的hdfs文件操作實現(xiàn)上傳文件到hdfs

    hadoop的hdfs文件操作實現(xiàn)上傳文件到hdfs

    這篇文章主要介紹了使用hadoop的API對HDFS上的文件訪問,其中包括上傳文件到HDFS上、從HDFS上下載文件和刪除HDFS上的文件,需要的朋友可以參考下
    2014-03-03
  • Java中控制多線程順序執(zhí)行的六種實現(xiàn)方案

    Java中控制多線程順序執(zhí)行的六種實現(xiàn)方案

    在多線程編程中,線程的執(zhí)行順序本質上是不確定的,由操作系統(tǒng)調度器決定,但在某些業(yè)務場景中,我們需要確保線程按照特定順序執(zhí)行,所以本文介紹了Java中控制多線程順序執(zhí)行的六種實現(xiàn)方案,需要的朋友可以參考下
    2025-09-09
  • IDEA+JRebel實現(xiàn)全自動熱部署的方法步驟

    IDEA+JRebel實現(xiàn)全自動熱部署的方法步驟

    這篇文章主要介紹了IDEA+JRebel實現(xiàn)全自動熱部署的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Java?CopyOnWriteArrayList源碼超詳細分析

    Java?CopyOnWriteArrayList源碼超詳細分析

    為了將讀取的性能發(fā)揮到極致,jdk中提供了CopyOnWriteArrayList類,下面這篇文章主要給大家介紹了關于java中CopyOnWriteArrayList源碼解析的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • java8中定時任務最佳實現(xiàn)方式(實現(xiàn)原理)

    java8中定時任務最佳實現(xiàn)方式(實現(xiàn)原理)

    這篇文章主要介紹了java8中定時任務最佳實現(xiàn)方式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-12-12
  • Mybatis-Plus之ID自動增長的設置實現(xiàn)

    Mybatis-Plus之ID自動增長的設置實現(xiàn)

    本文主要介紹了Mybatis-Plus之ID自動增長的設置實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • java中Scanner類的簡單用法分享

    java中Scanner類的簡單用法分享

    這篇文章主要介紹了java中Scanner類的簡單用法,有需要的朋友可以參考一下
    2014-01-01
  • 使用java swing實現(xiàn)qq登錄界面示例分享

    使用java swing實現(xiàn)qq登錄界面示例分享

    這篇文章主要介紹了使用java swing實現(xiàn)qq登錄界面示例,需要的朋友可以參考下
    2014-04-04
  • SpringBoot使用JavaMailSender實現(xiàn)發(fā)送郵件

    SpringBoot使用JavaMailSender實現(xiàn)發(fā)送郵件

    JavaMailSender是Spring Framework中的一個接口,用于發(fā)送電子郵件,本文主要為大家詳細介紹了SpringBoot如何使用JavaMailSender實現(xiàn)發(fā)送郵件,需要的可以參考下
    2023-12-12
  • 如何在Spring Boot項目中集成MQTT協(xié)議

    如何在Spring Boot項目中集成MQTT協(xié)議

    本文介紹在SpringBoot中集成MQTT的步驟,包括安裝Broker、添加Eclipse Paho依賴、配置連接參數(shù)、實現(xiàn)消息發(fā)布訂閱、測試接口及注意事項,如唯一客戶端ID、安全措施等,幫助開發(fā)者快速實現(xiàn)物聯(lián)網(wǎng)通信,感興趣的朋友一起看看吧
    2025-06-06

最新評論

思南县| 苏尼特左旗| 太谷县| 垣曲县| 南阳市| 五莲县| 习水县| 青龙| 蓬莱市| 阿拉尔市| 缙云县| 淮滨县| 九龙县| 莒南县| 平度市| 淄博市| 上饶县| 古田县| 长阳| 鄯善县| 乌鲁木齐市| 玉山县| 饶阳县| 布拖县| 南城县| 湖州市| 禄丰县| 邻水| 来安县| 定边县| 尉氏县| 油尖旺区| 和龙市| 湾仔区| 静安区| 古丈县| 长白| 建昌县| 稻城县| 合水县| 东阳市|