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”的主要内容,如果未能解决你的问题,请参考以下文章

servlet 怎么获取http post 的body

关于requests.post().json()获取到的JSON为单引号和NONE的那些事

Spring拦截器获取request请求体中的json数据,并转换成Java对象的解决办法

Spring拦截器获取request请求体中的json数据,并转换成Java对象的解决办法

java 怎么获取post 中的json参数

Django 无法通过request.POST.get()获取数据的问题