原因在于出現(xiàn)特殊字符是AFNetworking無法解析的,會直接報錯,那么當(dāng)你在發(fā)post請求時,返回結(jié)果會直接進(jìn)如fail代碼塊,其實(shí)在fail中用operation的nsstring可以直接輸出接收到的數(shù)據(jù),是string形,可以清楚的看到服務(wù)器端數(shù)據(jù)有哪些含有特殊字符,但是有一些字符是不好看到的,比如“TAB”(制表)鍵打出的那種四個空格,項(xiàng)目中用戶有時候很常用到tab鍵,最好的方法是在AFNetworking源碼中添加字符過濾功能
處理辦法:找到AFNetworking包中AFURLResponseSerialization.m文件,大概在第256行的if(responseString && ![responseStringisEqualToString:@" "])(此時已將data轉(zhuǎn)化為responseString形)條件下面添加如下過濾方法:
NSCharacterSet*controlChars = [NSCharacterSetcontrolCharacterSet];
NSRange?range?=?[responseStringrangeOfCharacterFromSet:controlChars];
if(range.location!=?NSNotFound)
{
NSMutableString*mutable=?[NSMutableStringstringWithString:responseString];
while(range.location!=?NSNotFound)
{
[mutabledeleteCharactersInRange:range];
range?=?[mutablerangeOfCharacterFromSet:controlChars];
}
responseString =mutable;
}
這只是處理一種情況,歡迎大家補(bǔ)充