报错:服务器
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unescaped control character around character 2884.) UserInfo=0x79fa60b0 {NSDebugDescription=Unescaped control character around character 2884.}post
缘由在于出现特殊字符是AFNetworking没法解析的,会直接报错,那么当你在发post请求时,返回结果会直接进如fail代码块,其实在fail中用operation的nsstring能够直接输出接收到的数据,是string形,能够清楚的看到服务器端数据有哪些含有特殊字符,可是有一些字符是很差看到的,好比“TAB”(制表)键打出的那种四个空格,项目中用户有时候很经常使用到tab键,最好的方法是在AFNetworking源码中添加字符过滤功能spa
处理办法:找到AFNetworking包中AFURLResponseSerialization.m文件,大概在第256行的 if (responseString && ![responseStringisEqualToString:@" "])(此时已将data转化为responseString形)条件下面添加以下过滤方法:blog
NSCharacterSet *controlChars = [NSCharacterSet controlCharacterSet]; NSRange range = [responseString rangeOfCharacterFromSet:controlChars]; if (range.location != NSNotFound) { NSMutableString *mutable = [NSMutableString stringWithString:responseString]; while (range.location != NSNotFound) { [mutable deleteCharactersInRange:range]; range = [mutable rangeOfCharacterFromSet:controlChars]; } responseString = mutable; }
OK,再试一下,应该不会在报错了。ip