request中获取post的json对象数据content-type=“text/plain”
Posted SimonHu1993
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了request中获取post的json对象数据content-type=“text/plain”相关的知识,希望对你有一定的参考价值。
其实采用http://www.cnblogs.com/SimonHu1993/p/7295750.html中的方法一都能获取到,
就是通过获取request中的流数据,拿到json数据,理论上应该适用各种content-type的请求数据。
/** *获取 request 中用POST方式"Content-type"是 * "text/plain"发送的 json数据 * @author: Simon * @date: 2017年8月6日 下午7:44:09 * @param request * @return * @throws IOException */ public static String getPostByTextPlain(HttpServletRequest request) throws IOException{ BufferedReader reader = request.getReader(); char[] buf = new char[512]; int len = 0; StringBuffer contentBuffer = new StringBuffer(); while ((len = reader.read(buf)) != -1) { contentBuffer.append(buf, 0, len); } String content= contentBuffer.toString(); return content; }
//在controll中进行调用; String content = HttpJsonUtils.getPostByTextPlain(request); //根据json数据中对象的key值及其类型取出相应的参数值 JSONObject jsObject = JSONObject.fromObject(content); try { usermob = jsObject.getString("usermob"); cpid = jsObject.getString("cpid"); spid = jsObject.getString("spid"); type = jsObject.getString("type"); ordertime = jsObject.getString("ordertime"); canceltime = jsObject.getString("canceltime"); endtime = jsObject.getString("endtime"); channelcode = jsObject.getString("channelcode"); province = jsObject.getString("province"); area = jsObject.getString("area"); ordertype = jsObject.getString("ordertype"); videoid = jsObject.getString("videoid"); } catch (Exception e) { LOGGER.info("发生错误*****" + e.getMessage()); }
以上是关于request中获取post的json对象数据content-type=“text/plain”的主要内容,如果未能解决你的问题,请参考以下文章
关于requests.post().json()获取到的JSON为单引号和NONE的那些事
Spring拦截器获取request请求体中的json数据,并转换成Java对象的解决办法