Java如何獲取HttpServletRequest請求參數(shù)
一、概況
在實際的開發(fā)應用當中,我們有時需要開放一個公共的接口讓第三方給我們推送數(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("攝像頭報警請求參數(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("攝像頭報警請求參數(shù):%s", "文件"));
// 由于HttpServletRequest不能直接取出文件數(shù)據(jù),所以將其強制轉(zhuǎn)換為MultipartHttpServletRequest
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
log.info(String.format("攝像頭報警請求參數(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("攝像頭報警請求參數(shù):%s", data));
}到此這篇關(guān)于Java如何獲取HttpServletRequest請求參數(shù)的文章就介紹到這了,更多相關(guān)Java HttpServletRequest請求參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java中的HttpServletRequestWrapper用法解析
- Java中的HttpServletRequest接口詳細解讀
- Java獲取HttpServletRequest的三種方法詳解
- Java service層獲取HttpServletRequest工具類的方法
- java通過HttpServletRequest獲取post請求中的body內(nèi)容的方法
- java HttpServletRequest和HttpServletResponse詳解
- java接口返回參數(shù)按照請求參數(shù)進行排序方式
- Java Spring Controller 獲取請求參數(shù)的幾種方法詳解
相關(guān)文章
SpringBoot整合Servlet和Filter和Listener組件詳解
這篇文章主要介紹了SpringBoot整合Servlet和Filter和Listener組件詳解,在整合某報表插件時就需要使用Servlet,Spring Boot中對于整合這些基本的Web組件也提供了很好的支持,需要的朋友可以參考下2024-01-01
java使用Hashtable過濾數(shù)組中重復值的方法
這篇文章主要介紹了java使用Hashtable過濾數(shù)組中重復值的方法,涉及java數(shù)組遍歷及過濾的相關(guān)技巧,需要的朋友可以參考下2016-08-08
Java中ResponseBodyEmitter的實現(xiàn)
這篇文章主要介紹了Java中ResponseBodyEmitter的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
Spring Boot RestTemplate提交表單數(shù)據(jù)的三種方法
本篇文章主要介紹了Spring Boot RestTemplate提交表單數(shù)據(jù)的三種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03

