AFNetworking对" key":" \ u0001"的响应没收到

时间:2017-04-19 10:58:17

标签: ios objective-c xcode afnetworking

对于我的AFNetworking请求,我希望有这样的" key":" \ 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;
}

当我编写这行代码时,它以String格式工作

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];

这不起作用。

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

谢谢

3 个答案:

答案 0 :(得分:0)

我建议您检查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];
          }

答案 1 :(得分:0)

NSDictionary* responseDict = [self dataObject:responseData];

使用它然后调用此方法

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

答案 2 :(得分:0)

尝试其他方式:

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);
}