在做APP图片上传功能的时候,遇到了这样的情况:使用AFNetworking携带parameters上传图片到后台,后台先现在sessionId,然后再接收图片。遇到的问题是:后台接收到的parameters是空的,但是通过抓包得知,上传上去的数据中的parameters是有数据的,但是后台接收不到。就这样僵持了两天,找了外援也没能解决。在网上问,得到的答案是后台的问题需要后台调整。
解决办法:将抓包得到的情况反馈给后台,和后台协商后,新开一个不需要验证的接口。上传步骤是:1.先上传图片;2.上传图片完成后,返回图片地址;3.后续将返回的图片地址存到parameters中,通过表单上传传给后台记录。
然后又遇到了一个新的情况,使用AFNetworking上传,在后台显示的图片会是图片错误。所以改用原生的上传方式
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {}
此时上传上去的图片无错。
后续有时间再研究下为什么。
3月31日
Android端也遇到了带参数上传验证不通过的问题,所以后台改了一下。
后台说他原先后台能接受的文件是不带参数头的,用AFNetworking上传的是带参数头的,所以不能传。今天他增加了一个common什么的方法,然后就可以接收了。