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

Java如何獲取HttpServletRequest請求參數(shù)

 更新時間:2024年11月08日 10:05:41   作者:Monly21  
我們常需要接口接收第三方推送的數(shù)據(jù),由于第三方可能不具備開發(fā)能力,我們需要自行解析推送的數(shù)據(jù)格式,通過HttpServletRequest,我們可以解析字符串、JSON、XML以及文件等多種數(shù)據(jù)類型,本文介紹了如何在Java中使用HttpServletRequest獲取請求參數(shù),感興趣的朋友一起看看吧

一、概況

在實(shí)際的開發(fā)應(yīng)用當(dāng)中,我們有時需要開放一個公共的接口讓第三方給我們推送數(shù)據(jù),但是很多第三方廠家買的是別人的軟件或者交接人員不是開發(fā)人員,沒有程序源碼,不知道推送的是什么格式的數(shù)據(jù)。
這就需要我們自己使用代碼解析出來,在這里可以借用HttpServletRequest來解析字符串、JSON、XML以及文件數(shù)據(jù)等。

二、程序源碼

@PostMapping("/push")
public AjaxResult push(HttpServletRequest request) {
    try {
        String contentType = request.getContentType();
        log.info(String.format("攝像頭報(bào)警請求參數(shù)類型:%s", contentType));
        if (contentType.contains("multipart/form-data;")) {
            readFile(request);
        } else {
            readParams(request);
        }
        return success();
    } catch (Exception e) {
        return success();
    }
}

讀取文件參數(shù)

public void readFile(HttpServletRequest request) {
    log.info(String.format("攝像頭報(bào)警請求參數(shù):%s", "文件"));
    // 由于HttpServletRequest不能直接取出文件數(shù)據(jù),所以將其強(qiáng)制轉(zhuǎn)換為MultipartHttpServletRequest
    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
    log.info(String.format("攝像頭報(bào)警請求參數(shù):%s", String.valueOf(fileMap)));
    fileMap.forEach((key, value) -> {
        try {
            log.info(String.format("key:%s, value:%s", key, value.getName()));
            String filePath = RuoYiConfig.getUploadPath();  // 上傳文件路徑
            String fileName = FileUploadUtils.upload(filePath, value);
            log.info(String.format("文件已經(jīng)下載:%s", fileName));
        } catch (IOException e) {
            log.error(e.getMessage());
            throw new RuntimeException(e);
        }
    });
}

讀取非文件參數(shù)

public void readParams(HttpServletRequest request) {
     StringBuilder data = new StringBuilder();
     String line;
     BufferedReader reader;
     try {
         reader = request.getReader();
         while (null != (line = reader.readLine())) {
             data.append(line);
         }
     } catch (IOException e) {
         log.error(e.getMessage());
     }
     log.info(String.format("攝像頭報(bào)警請求參數(shù):%s", data));
 }

到此這篇關(guān)于Java如何獲取HttpServletRequest請求參數(shù)的文章就介紹到這了,更多相關(guān)Java HttpServletRequest請求參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas

    Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas

    這篇文章主要介紹了Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下
    2019-06-06
  • Spring Bean創(chuàng)建和循環(huán)依賴

    Spring Bean創(chuàng)建和循環(huán)依賴

    這篇文章主要介紹了Spring Bean創(chuàng)建和循環(huán)依賴,講述了Spring容器中?Bean?的創(chuàng)建過程已經(jīng)主要的方法,另外也著重分析了循環(huán)依賴的問題,需要的小伙伴可以參考一下
    2022-05-05
  • SpringBoot配置攔截器實(shí)現(xiàn)過程詳解

    SpringBoot配置攔截器實(shí)現(xiàn)過程詳解

    在系統(tǒng)中經(jīng)常需要在處理用戶請求之前和之后執(zhí)行一些行為,例如檢測用戶的權(quán)限,或者將請求的信息記錄到日志中,即平時所說的"權(quán)限檢測"及"日志記錄",下面這篇文章主要給大家介紹了關(guān)于在SpringBoot項(xiàng)目中整合攔截器的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • mybatis-plus3.4.0邏輯刪除報(bào)錯的解決

    mybatis-plus3.4.0邏輯刪除報(bào)錯的解決

    這篇文章主要介紹了mybatis-plus3.4.0邏輯刪除報(bào)錯的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Spring中@Service注解的作用與@Controller和@RestController之間區(qū)別

    Spring中@Service注解的作用與@Controller和@RestController之間區(qū)別

    這篇文章主要介紹了Spring中@Service注解的作用與@Controller和@RestController之間的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03
  • Java獲取當(dāng)?shù)氐娜粘鋈章鋾r間代碼分享

    Java獲取當(dāng)?shù)氐娜粘鋈章鋾r間代碼分享

    這篇文章主要介紹了Java獲取當(dāng)?shù)氐娜粘鋈章鋾r間代碼分享,國外猿友寫的一個類,需要的朋友可以參考下
    2014-06-06
  • Java中使用正則表達(dá)式獲取網(wǎng)頁中所有圖片的路徑

    Java中使用正則表達(dá)式獲取網(wǎng)頁中所有圖片的路徑

    這篇文章主要介紹了Java中使用正則表達(dá)式獲取網(wǎng)頁中所有圖片的路徑,本文直接給出實(shí)例代碼,需要的朋友可以參考下
    2015-06-06
  • Java 異步實(shí)現(xiàn)的幾種方式小結(jié)

    Java 異步實(shí)現(xiàn)的幾種方式小結(jié)

    這篇文章主要介紹了Java 異步實(shí)現(xiàn)的幾種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 談?wù)?Java 中 this 的使用方法

    談?wù)?Java 中 this 的使用方法

    這篇文章主要介紹了Java 中 this 的使用方法,需要的朋友可以參考下
    2014-01-01
  • JAVA IO API使用詳解

    JAVA IO API使用詳解

    本文通過理論、用法、實(shí)例詳細(xì)說明了JAVA IO的使用,大家參考其中的實(shí)例代碼實(shí)現(xiàn)自己的JAVA IO程序
    2013-11-11

最新評論