对于我的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];
这不起作用。
任何人都可以指导我如何实现我的预期输出的正确步骤。
谢谢
答案 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);
}