java http post数组参数_post请求参数Json字符串包含数组的校验和处理

遍历importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.util.HashMap;importjava.util.Map;importorg.apache.log4j.Logger;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importcom.xxx.live.core.util.others.ConfigUtil;importcom.xxxx.live.webapp.util.HttpClientUtil;importcom.xxxx.mobilevideo.core.util.StringUtil;/*** Servlet implementation class CloudCutStreamServlet*/

public class CloudCutStreamServlet extendsHttpServlet {private static final long serialVersionUID = 1L;

Logger log= Logger.getLogger(RecordFinishServlet.class);/***@seeHttpServlet#HttpServlet()*/

publicCloudCutStreamServlet() {super();

}/***@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse

* response)*/

protected voiddoGet(HttpServletRequest req, HttpServletResponse resp)throwsServletException, IOException {//TODO Auto-generated method stub

this.doPost(req, resp);

}/***@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse

* response)*/

protected voiddoPost(HttpServletRequest req, HttpServletResponse resp)throwsServletException, IOException {

//1.校验参数

JSONObject resultMap = this.getResutltMap(req);if (null ==resultMap) {

response(resp, getMsg(false, "请求参数格式不正确", "10002"));return;

}

String liveName= resultMap.getString("liveName");

String masterUrl= resultMap.getString("masterUrl");

String slaveUrl= resultMap.getString("slaveUrl"); //可以为空

String reason=resultMap.getString("reason"); //切流原因不可以为空

JSONArray waterMark=resultMap.getJSONArray("waterMark"); //接收对象里的数组//判断水印是否为空,为空则使用默认水印,

if(waterMark.isEmpty()){//使用默认的水印

String waterMarkDefaultValue="[{'name':'默认name1','position':'默认地址1'},{'name':'默认name2','position':'默认地址2'}]";

resultMap.put("waterMark", waterMarkDefaultValue);

}else{//水印不为空判断数组中的json的key值是否为空

int jsonSize = waterMark.size(); //获取数组长度

for(int i=0;i

JSONObject jsonTemp=(JSONObject)waterMark.getJSONObject(i);

if(StringUtil.isNullStr(jsonTemp.getString("name"))||StringUtil.isNullStr(jsonTemp.getString("position"))){response(resp, getMsg(false, "参数为空", "10001"));return;

}

}

}//接受参数校验

if (StringUtil.isNullStr(liveName) || StringUtil.isNullStr(masterUrl)||StringUtil.isNullStr(reason)) {response(resp, getMsg(false, "参数为空", "10001"));return;

}//参数正常

try{

String result="";

String change_source_url= ConfigUtil.getProperty("change_source_Url");response(resp, getMsg(true, "请求成功", "99999"));

}catch(Exception e) {

e.printStackTrace();

}}publicJSONObject getResutltMap(HttpServletRequest req) {

String requestStr= "";

StringBuilder sb= newStringBuilder();

InputStream is= null;

BufferedReader dis= null;try{

is=req.getInputStream();

dis= new BufferedReader(new InputStreamReader(is, "utf-8"));

String str= "";while ((str = dis.readLine()) != null) {

sb.append(str);

}

}catch(IOException e) {

e.printStackTrace();

}finally{try{if (dis != null) {

dis.close();

}if (is != null) {

is.close();

}

}catch(IOException e) {

e.printStackTrace();

}

}

requestStr=sb.toString();try{

JSONObject json=JSON.parseObject(requestStr);returnjson;

}catch(Exception e) {}return null;

}private String getMsg(booleansuccess, String msg, String errCode) {

Map returnMap = new HashMap();

returnMap.put("success", success);

returnMap.put("msg", msg);

returnMap.put("errCode", errCode);

String returnJson=JSON.toJSONString(returnMap);returnreturnJson;

}private voidresponse(HttpServletResponse resp, String msg) {try{

resp.setContentType("text/html");

resp.setCharacterEncoding("UTF-8");

PrintWriter out=resp.getWriter();

out.println(msg);

out.close();

}catch(Exception e) {

log.error(e.getMessage(), e);

}

}

}