POST请求的request.getInputStream()以及request.getParameterMap()方法的相关代码

POST请求的request.getInputStream()以及request.getParameterMap()方法的粗浅分析,望指教。

(1)request.getParameterMap()在获取POST请求的参数时,不需要url转码,但是2M以上的图片经过base64编码之后的长字符串经过检验获取不到。暂时不知何原因,有大神知道,可以留言告知。
代码如下:
Map<String, String[]> parameterMap = request.getParameterMap();
byte[] decode = null;
//获取的base64编码的图片的数组
String[] pictuer_list = null;
//buf链接的是图片的完整路径
StringBuffer buf=new StringBuffer("");
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
if(entry.getKey().equals(“CAMERA_IP”)) {
for (String string : entry.getValue()) {
recogWarnInfo.setCamera_ip(string);
}
}else if(entry.getKey().equals(“CAPTURE_DATETIME”)) {
for (String string : entry.getValue()) {
recogWarnInfo.setCapture_datetime(string);
}
}else if(entry.getKey().equals(“TRIGGERED_MODEL_ID”)) {
for (String string : entry.getValue()) {
recogWarnInfo.setTriggered_model_id(string);
}
}else if(entry.getKey().equals(“TRIGGER_REASON”)) {
for (String string : entry.getValue()) {
recogWarnInfo.setTrigger_reason(string);
}
}else if(entry.getKey().equals(“PICTURE”)) {
pictuer_list = entry.getValue();
}
}
(2)request.getInputStream()在获取post请求的时候直接获取了post请求的请求体,能够获取2M以上(包括2M以内)的图片经过base64编码处理得到的长字符串,获取来的数据需要经过一些处理,还需要经过url转码处理。代码如下:
try {
BufferedReader streamReader = new BufferedReader( new InputStreamReader(request.getInputStream(),“UTF-8”));
StringBuilder respomseStrBuilder = new StringBuilder();
String inputStr = “”;
while ((inputStr = streamReader.readLine())!= null){
respomseStrBuilder.append(inputStr);
}
String[] strrrrrrr = respomseStrBuilder.toString().split("&");
List mcodelist = Arrays.asList(strrrrrrr);
Iterator String_lidd = mcodelist.iterator();
while(String_lidd.hasNext()) {
String Str_lid = String_lidd.next();
String[] Str_lid_lit = Str_lid.toString().split("=");
if(“PICTURE”.equals(Str_lid_lit[0])) {
pictuer_list.add(URLDecoder.decode(Str_lid_lit[1], “GBK”));
}
if(“TRIGGER_REASON”.equals(Str_lid_lit[0])) {
recogWarnInfo.setTrigger_reason(URLDecoder.decode(Str_lid_lit[1], “UTF-8”));
}
if(“CAMERA_IP”.equals(Str_lid_lit[0])) {
recogWarnInfo.setCamera_ip(Str_lid_lit[1]);
}
if(“TRIGGERED_MODEL_ID”.equals(Str_lid_lit[0])) {
recogWarnInfo.setTriggered_model_id(Str_lid_lit[1]);
}
if(“CAPTURE_DATETIME”.equals(Str_lid_lit[0])) {
//url转码
//String uuuuu = URLDecoder.decode(Str_lid_lit[1], “GBK”);
recogWarnInfo.setCapture_datetime(URLDecoder.decode(Str_lid_lit[1], “GBK”));
}
}
}catch (Exception e){
e.printStackTrace();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值