AFNetworking对“密钥”的响应:“\ u0001”未收到

问题描述:

对于我的AFNetworking请求,我期待这样的“key”:“\ u0001”响应,但我没有越来越多地获得“key”:“”。我尝试了多个堆栈问题,但没有为我工作。AFNetworking对“密钥”的响应:“ u0001”未收到

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
[manager.requestSerializer setTimeoutInterval:15]; 
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"]; 
manager.securityPolicy.allowInvalidCertificates = true; 
manager.securityPolicy.validatesDomainName = false; 
[manger.requestSerializer setValue:@"Application/json" forHTTPHeaderField:@"Accept"]; 
manger.responseSerializer = [AFHTTPResponseSerializer serializer]; 
[manger GET:url parameters:nil progress:nil success:^(NSURLSessionTask *operation, id responseObject){ 
     NSLog(@"Response REST AP loaded %@", responseObject); 
     NSMutableDictionary *response = responseObject; 
} 

它的工作字符串格式,当我写这行代码

NSString* newStr = [[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding]; 

但现在我不知道如何使它到NSDictionary中,我也试过这种转换为NSDictionary中

NSData *webData = [newStr dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:webData options:0 error:&error]; 

这没有奏效。

任何人都可以指导我适当的步骤如何实现我的预期输出。

谢谢

我建议你应该检查responseObject类型,例如:

  if ([[responseObject class] isSubclassOfClass:[NSDictionary class]]) { 
      // return responseObject because this is a dictionary 
      } 
      else { 
      NSError *error = nil; 
      NSString* newStr = [[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding]; 
      NSData *webData = [newStr dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
      return [NSJSONSerialization JSONObjectWithData:webData options:0 error:&error]; 
      } 
+0

我得到响应,NSDictionary的,我的问题 我没有得到这把“钥匙”:“\ U0001” insted的我得到这把“钥匙”:“” 希望我清楚 – niravdesai21

+0

如果你尝试测试来自Chrome的Postman插件的回复?如果字典为空值,请联系您的后端。 –

+0

这个值预计“钥匙”:“\ u0001”来我也在邮差测试。它来到那里,但我不通过AFNetworking在这里接收。 – niravdesai21

NSDictionary* responseDict = [self dataObject:responseData]; 

利用这一点,然后调用此方法

- (id) dataObject:(NSData*)data 
{ 
    return [ NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; 
} 
+0

仍然没有工作仍然“钥匙”:“\ u0001”没有来 – niravdesai21

+0

我认为这个“\ u0001”是在ios中特殊字符的代码。 –

+0

其无符号字符不是特殊字符 – niravdesai21

尝试另一种方式:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
[manager.requestSerializer setTimeoutInterval:15]; 
manager.securityPolicy.allowInvalidCertificates = true; 
manager.securityPolicy.validatesDomainName = false; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 

[manager GET:requestURL parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { 
NSLog(@"Response REST AP loaded %@", responseObject); 
} 
+0

这个问题只是作为回应,因为当我使用这个 NSString * newStr = [[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding]; 我得到了正确的回应,但它的字符串,我需要它在字典中 – niravdesai21