NSDictionary *dic = @{
@"title" : title.text,
@"name" : name.text,
@"wechat" : weixin.text,
@"phone" : phone.text,
@"alipay" : zfb.text,
@"oicq" : QQ.text,
@"number" : IDCard.text,
@"content" : contentTV.text,
@"image" : [NSString stringWithFormat:@"data:image/jpeg;base64,%@", encodedImageStr]
};
title、name、content为中文,之前的认知是网络请求的参数带中文需要先转义下然后上传服务器,再把dic转成json串,服务器需要的是json,但是...........iOS在dic转json中,中文会自动转换成这种格式:\u63d0\u4ea4\u6210\u529f,所以不需要先中文转义了,直接把dic转json,这里给后台人员埋了个坑(后面说)。
image参数,把图片以base64的格式上传服务器,需要拼接data:image/jpeg:base64,(还有逗号别忘了) ,这是后台base64的格式(大概是这个意思),如果不拼接这段话,网络请求会报3840和1011。
埋了坑是因为,带中文的参数我转义了,并且dic转json,上传到服务器,我上传的参数是json串,后台需要把字符串中我转义过的中文转回中文,后台使用urldecode转换整个json串,保存到数据库。这样会把base64图片弄出问题,后台怎么都展示不出来我传过去的图片,但是我这边用uiimageview却能展示出来,所以问题来了,解决办法就是去掉中文转义,那几句代码纯粹多余,我这里上传的参数是做黑名单举报的