WebAPI传参所遇到的坑

最近在做项目,采用前后端分离的开发模式,刚好负责WebAPI的编写, 由于自己是个小白,开发过程中问题多多,一路磕磕绊绊的,最近又遇到奇葩问题,虽然解决了,但不知其所以然,特此记录,以备后面学习。

项目中采用Json的形式来进行参数传递,创建实体类Model,接收POST参数,一切顺顺利利,安卓,ios调用都如想象中顺利,甚至觉得是不是可以一个周就把所有的接口调试完成,上线,开始二期任务....

然而,调试之路并没有我想的这么简单,该出问题,还是会出问题的。同一个接口,安卓能调用,ios传递的参数却收不到!

上图这个API,两个系统调用都没有问题,but...

 这个为啥只有安卓能用,ios不能用?是不是他参数字母错的?是不是参数格式错了?拉着ios工程师改了半天,开调试,接收参数,null...

下面是两个Model类

 

 网上搜罗半天,无果,决定先把两个API接收到的请求打印出来对比一下

两个API都采用了上面的方法,获取上传的参数,看看有什么幺蛾子。当我看到结果的时候我都傻眼了,两个方法的content都有值,里面不就是我想要的参数吗?为啥一个能获取到,一个为空?

 感觉自己已经傻了,是不是ProductInfoModel和UserInfoModel不一样?我只是定义了自动属性啊?肯定没问题的...

最后,在我这只小白快吐血身亡的时候,无意间解决了。

原来ProductInfoModel中存在一个固定参数ADDRESS,一个产品生产地址参数Address,我把其中一个参数去了,就解决了。问题解决了,我更加郁闷了,.NET不是强类型语言吗?而且,为啥同一个安卓都能用,为啥ios不能用?望各位大神能给小白解惑。

posted @ 2017-08-22 15:10  Hoang  阅读(335)  评论(0)    收藏  举报