8
回答
jfinal 提供post接口 获取不到参数值
华为云4核8G,高性能云服务器,免费试用   
使用jfinal对外提供rest风格的post接口,手机端掉用时,将参数填充到body中,在服务端获取不到参数值,String key = getPara("key"); 这种方式获取可对?
举报
Tank_shu
发帖于4年前 8回/6K+阅
共有8个答案 最后回答: 2年前
接收方式是正确的,可能是客户端调用时传参不正确,
--- 共有 2 条评论 ---
JFinal回复 @Allen_Shu : POST 必定是支持的,这个是由java web 规范 的 serlvet 提供支持的,jfinal 是在 servlet 之上做极薄封装。出现这种情况必定是客户端的问题 4年前 回复
Tank_shu在post提交时 直接把参数跟在URL后面是可以获取的,难道对body形式的不支持? 4年前 回复

引用来自“JFinal”的评论

接收方式是正确的,可能是客户端调用时传参不正确,
使用poster提交时也不对 ,点击【post】进行提交的
--- 共有 10 条评论 ---
欧钟源回复 @Allen_Shu : 最后是怎么解决的?我也遇到这个问题了。 3年前 回复
Tank_shu回复 @JFinal : String longitude = getPara("longitude"); Jfinal就是用getPara取的,servlet用request的getParameter方法,这些本身都没有问题。 是从拦截器中过的问题,如果前面放个filter,servlet也是取不到值的 4年前 回复
Tank_shu回复 @JFinal : 已经测试过了,走纯servlet没问题,但是用拦截器的话就会出现问题(poster工具Parameters模式) 4年前 回复
JFinal回复 @Allen_Shu : 贴出详细代码来吧,很可能是手误 ,重点贴出来 servlet 取数据的代码与 jfinal 取数据代码的对比 4年前 回复
Tank_shu回复 @JFinal : 经测试 纯servlet下,poster是没有问题的,继续排查中 4年前 回复

我是Post JSON到JFinal的,同样用getPara()接收不到值。但是在getParameterMap()里面有值

所以最后简单粗暴地解决了

String jsonString=(String) getRequest().getParameterMap().keySet().toArray()[0];

引用来自“欧钟源”的评论

我是Post JSON到JFinal的,同样用getPara()接收不到值。但是在getParameterMap()里面有值

所以最后简单粗暴地解决了

String jsonString=(String) getRequest().getParameterMap().keySet().toArray()[0];

注意看截图里面的 Parameter 这一部分,整个 json 数据当成了 name 后面紧跟了一个等号 "=",而等号后面没有值,所以传值方式不正确

引用来自“欧钟源”的评论

我是Post JSON到JFinal的,同样用getPara()接收不到值。但是在getParameterMap()里面有值

所以最后简单粗暴地解决了

String jsonString=(String) getRequest().getParameterMap().keySet().toArray()[0];

引用来自“JFinal”的评论

注意看截图里面的 Parameter 这一部分,整个 json 数据当成了 name 后面紧跟了一个等号 "=",而等号后面没有值,所以传值方式不正确
波波大哥说的完全正确!我就是遇到这个问题,他看到下面有一个等号,实际上就是你的key就是等号前面这一大堆,value是什么都没有!就这么简单,我就是遇到同样的问题,幸好看到波波大哥提到这个等号!所以我就发现问题所在得以顺利解决,谢谢波波大哥了!永远支持jfinal!!!
顶部