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)文章希望大家以后多多支持腳本之家!
- Java中的HttpServletRequestWrapper用法解析
- Java中的HttpServletRequest接口詳細(xì)解讀
- Java獲取HttpServletRequest的三種方法詳解
- Java service層獲取HttpServletRequest工具類的方法
- java通過HttpServletRequest獲取post請求中的body內(nèi)容的方法
- java HttpServletRequest和HttpServletResponse詳解
- java接口返回參數(shù)按照請求參數(shù)進(jìn)行排序方式
- Java Spring Controller 獲取請求參數(shù)的幾種方法詳解
相關(guān)文章
Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas
這篇文章主要介紹了Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下2019-06-06Spring Bean創(chuàng)建和循環(huán)依賴
這篇文章主要介紹了Spring Bean創(chuàng)建和循環(huán)依賴,講述了Spring容器中?Bean?的創(chuàng)建過程已經(jīng)主要的方法,另外也著重分析了循環(huán)依賴的問題,需要的小伙伴可以參考一下2022-05-05SpringBoot配置攔截器實(shí)現(xiàn)過程詳解
在系統(tǒng)中經(jīng)常需要在處理用戶請求之前和之后執(zhí)行一些行為,例如檢測用戶的權(quán)限,或者將請求的信息記錄到日志中,即平時所說的"權(quán)限檢測"及"日志記錄",下面這篇文章主要給大家介紹了關(guān)于在SpringBoot項(xiàng)目中整合攔截器的相關(guān)資料,需要的朋友可以參考下2022-10-10mybatis-plus3.4.0邏輯刪除報(bào)錯的解決
這篇文章主要介紹了mybatis-plus3.4.0邏輯刪除報(bào)錯的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Spring中@Service注解的作用與@Controller和@RestController之間區(qū)別
這篇文章主要介紹了Spring中@Service注解的作用與@Controller和@RestController之間的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-03-03Java獲取當(dāng)?shù)氐娜粘鋈章鋾r間代碼分享
這篇文章主要介紹了Java獲取當(dāng)?shù)氐娜粘鋈章鋾r間代碼分享,國外猿友寫的一個類,需要的朋友可以參考下2014-06-06Java中使用正則表達(dá)式獲取網(wǎng)頁中所有圖片的路徑
這篇文章主要介紹了Java中使用正則表達(dá)式獲取網(wǎng)頁中所有圖片的路徑,本文直接給出實(shí)例代碼,需要的朋友可以參考下2015-06-06Java 異步實(shí)現(xiàn)的幾種方式小結(jié)
這篇文章主要介紹了Java 異步實(shí)現(xiàn)的幾種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08