jFinal解析IOS post请求获取不到参数问题
以前用struts没发现android和ios请求有什么不同,直接在Controller设置同名属性,设置set方法就ok了,最近想将一些小项目用jfinal实现,发现一个烦人的问题。
web、android上的get请求、post请求,jfinal均可以用getPara获取到参数
ios上的get请求,jfinal可以用getPara获取到参数,但是post请求获取的参数就是null
网上有一篇帖子http://www.tuicool.com/articles/vUZJ32r,貌似ios的post请求格式比较诡异。
做了个测试,在jfinal设置一个全家的拦截器,获取请求的参数
String tpData = HttpKit.readData(request);
发现ios的post请求:
--Boundary+1916537BAF0C47C8Content-Disposition: form-data; name="c"
233441235
--Boundary+1916537BAF0C47C8
Content-Disposition: form-data; name="p"
1
--Boundary+1916537BAF0C47C8
Content-Disposition: form-data; name="s"
5
--Boundary+1916537BAF0C47C8--
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
谢谢提醒,问题解决了。解决如下
回复
@Shydow : 怎么解决的请问
这个问题很诡异,貌似很久以前有个人碰到过,忘了怎么解决了。有一点是可以肯定的,jfinal 的 getPara(...) 系列的方法仅仅是转调下层的 HttpServletRequest.getParameter(...) ,是不可能有错误的,出错的可能性是底层的 jetty 或者 tomcat 无法解决这个请求,再一个可能是 ios 客户端发送过来的数据不符合 http 规范
这个问题隐约记得是 ios 客户端的问题,建议你在客户端多尝试一下别的方式发起请求,或者改改参数之类的
IOS端的请求用了一个框架
AFHTTPSessionManager ,该框架用于传file比较方便,所以其post请求的type是“multipart/form-data”,它不是基本的http请求,详见:http://blog.csdn.net/five3/article/details/7181521,针对这种没file的场景,可以先getfile,然后再用getpara方法获取参数,详见:http://www.thinksaas.cn/topics/0/396/396070.html,getfile会提示缺少jar包,解决见:http://www.oschina.net/question/1787637_157890?sort=time