分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

struts2 接口如何接收客户端提交的json数据

发布时间:2023-09-06 02:00责任编辑:林大明关键词:jsjson

struts2 接口如何接收客户端提交的json数据

CreationTime--2018年6月20日15点54分

Author:Marydon

1.情景还原

  使用struts2写的接口(服务端),要求对方(客户端)以json格式传输数据,但是使用request.getParameter()获取不到

2.问题剖析

  application/x- www-form-urlencoded是Post请求默认的请求体内容类型,也是form表单默认的类型,可以使用request.getParameter()方法来获取请求参数值;

  但是,当请求内容不是该类型时,就不能使用request.getParameter()方法来获取请求参数值了,具体如下:

  当请求体内容为application/json类型时,需使用request.getReader()方法来获取请求内容值(字符流);

  当请求体内容为multipart/form-data类型时,需使用request.getInputStream()方法来获取请求内容值(字节流)。

3.解决方案

  所需jar包

  struts2-core-2.3.34.jar;

  导入

import java.io.BufferedReader;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;
/** * 获取接口传递的JSON数据 * @explain * @param request HttpServletRequest对象 * @return JSON格式数据 */public static JSONObject getJsonReqData () { ???// 获取Request对象 ???HttpServletRequest request = ServletActionContext.getRequest(); ???StringBuffer sb = new StringBuffer(); ???try { ???????// json格式字符串 ???????String jsonStr = ""; ???????// 获取application/json格式数据,返回字符流 ???????BufferedReader reader = request.getReader(); ???????// 对字符流进行解析 ???????while ((jsonStr = reader.readLine()) != null) { ???????????sb.append(jsonStr); ???????} ???} catch (IOException e) { ???????e.printStackTrace(); ???} ???????// 将json字符串(jsonStr)-->json对象(JSONObject) ???JSONObject jo = JSONObject.fromObject(sb.toString()); ???return jo;}

 相关推荐:

  • java 发送post请求的2种方式(form、json)

struts2 接口如何接收客户端提交的json数据

原文地址:https://www.cnblogs.com/Marydon20170307/p/9204376.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved