用NSURLConnection Post上传数据的"+"会变成空格
2014-05-28 10:08
507 查看
在一次项目中,要post图片到服务器上去,在之前要将图片转换成base64的格式。但是发现post上去的图片在服务器端总是不存在,经过与后台数据的对比发现image转成base64String里的“+”,post到服务器上都变成了空格。郁闷的很呀!开始没仔细去想,就直接叫后台将我post的string中的空格全部替换成“+”,这倒也算是解决了这个问题。但是总觉得这不是解决问题的最佳途径。后台经过查看一些资料,终于发现这个情况在post时,如果url中含有特殊字符(如“+=等”)就会出现的。但是在post之前对这些特殊符号做一次UTF8就可以了解决这个问题了。下面贴代码:
NSString *baseStr = [imgData base64Encoding]; NSString *baseString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)baseStr, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8); [urlRequest setHTTPBody:[baseString dataUsingEncoding:NSUTF8StringEncoding]];
相关文章推荐
- 用NSURLConnection Post上传数据的"+"会变成空格
- 用NSURLConnection Post上传数据的"+"会变成空格
- 用NSURLConnection Post上传数据的"+"会变成空格
- 总结Asp.net中Page加载PostData的具体过程 进而解决"获取动态创建的控件的PostData数据"问题
- 用NSURLConnection Post上传数据的特殊字符处理
- 用NSURLConnection Post上传数据的特殊字符处理
- 用NSURLConnection Post上传数据的特殊字符处理
- 用NSURLConnection Post上传数据的特殊字符处理
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法
- "Not associated with a trusted SQL Server connection"解决方法
- "post/get"的区别
- "flash加载flv,本地测试正常,上传至空间则失败"解决办法
- 把数据导出Excel 出现异常:HRESULT:0x800A03EC 需要注意数据中的"="号
- "System.Data.OleDb.OleDbException: 无法从指定的数据表中删除"的解决办法
- 解决"链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].fieldname' 无效的数据"的一种替换方法
- Ext.data.Record前台的"数据库行数据"
- "ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error"异常出现的原因
- request.getParameter("变量名")获取的字符串中原来的加号变成了空格,url传值
- Flex 调用javascript上传文件读取文件的本地路径的一直是 "C:/fakepath/" 的解决方案
- struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file") 是null的问题分析