关于HttpBody是纯JSON的情况,JFinal的解决方案

500_Server_Error 发布于 2016/03/12 08:22
阅读 595
收藏 0

因为要兼顾前端的多样性(web、app、device),所以发的一般都是很纯粹的http报文,例如用poster或者postman做测试时常年会用到复杂jsonbody的提交

发现出现body纯json的情况时,整个body全部作为key存在parm中

这种方式是因为postRequest的HttpBody是完全由json组成的,一般是前后完全分离式的web,或者提供restfulAPI的后台应用才会遇到这种情况

http协议的headers与body由一个空行分割,jfinal是应用级充血框架,对request做了浅层封装,所以重写Controller类,添加对request的应用就行了


覆盖Controller类,添加一个方法getJsonObject(),其它DomainController继承这个Controller;


getJsonObject方法中定义StringBuilder,获取request,然后取reader,然后读取每一行((str=reader.readLine)!=null),然后加到Builder中,最后用fastjson(或者其它的)将builder.toString转成JSONObejct作为返回值,别忘了关流,途中出现数值转换异常,定义全局异常拦截器,和自定义异常(带有int httpcode的),直接返回error_message<data format error>+Httpstatus<406>的json


不知道这样做对不对? @JFinal ? ,新人希望指点此处的优化点,有没有更好处理这个的方法

顺便问下,看了下源码,发现url参数是通过判断"/"这个target而决定路由的,但是现在做API的公司一般都遵循/+参数的形式传参(某论文的影响?),我知道可以用别的方式避免,但是也希望能知道一个能解决"/"挂参的问题,最好给个demo看一看


我是做前后完全分离式应用服务器的,body完全由json组成的Http协议报文是我的主要解析工作,作天刚接触JFinal,可惜公司不让用,从ssh,ssm转过来,准备用来淘宝开小灶
加载中
返回顶部
顶部