首页 > 代码库 > 使用ASI过程中遇到的一些问题
使用ASI过程中遇到的一些问题
最近在使用 ASIHTTPRequest 的过程遇到一个问题,ASI 将 返回的 data 转换成了string,然后就在 dic 前面多了一些字符,导致 string 成了一个不是有效的 json 串。
// Call this method to get the received data as an NSString. Don‘t use for binary data!- (NSString *)responseString{ NSData *data =http://www.mamicode.com/ [self responseData]; if (!data) { return nil; } return [[[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:[self responseEncoding]] autorelease];}
如果直接调用 NSData *data = http://www.mamicode.com/[self responseData]; 是没有错的,一旦调用 - (NSString *)responseString 就回出现这种情况
为此呢,不得已又写了一个方法将多余的字符删除掉...
1 - (NSString *)jsonStringProcessingWithString:(NSString *)jsonString{ 2 NSString *resultJsonString = @""; 3 4 int head = 0; 5 int trail = jsonString.length; 6 7 for (int i=0; i<jsonString.length; i++) { 8 unichar ch = [jsonString characterAtIndex:i]; 9 if (ch == 0x007B) {10 head = i;11 break;12 }13 }14 for (int i=jsonString.length-1; i>0; i--) {15 unichar ch = [jsonString characterAtIndex:i];16 if (ch == 0x007D) {17 trail = i;18 break;19 }20 }21 22 NSRange range = NSMakeRange(head, trail-head+1);23 resultJsonString = [jsonString substringWithRange:range];24 25 return resultJsonString;26 }
然后就木有问题了...
使用ASI过程中遇到的一些问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。