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];
}
NSDictionary* responseDict = [self dataObject:responseData];
利用这一点,然后调用此方法
- (id) dataObject:(NSData*)data
{
return [ NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
}
仍然没有工作仍然“钥匙”:“\ u0001”没有来 – niravdesai21
我认为这个“\ u0001”是在ios中特殊字符的代码。 –
其无符号字符不是特殊字符 – 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);
}
这个问题只是作为回应,因为当我使用这个 NSString * newStr = [[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding]; 我得到了正确的回应,但它的字符串,我需要它在字典中 – niravdesai21
我得到响应,NSDictionary的,我的问题 我没有得到这把“钥匙”:“\ U0001” insted的我得到这把“钥匙”:“” 希望我清楚 – niravdesai21
如果你尝试测试来自Chrome的Postman插件的回复?如果字典为空值,请联系您的后端。 –
这个值预计“钥匙”:“\ u0001”来我也在邮差测试。它来到那里,但我不通过AFNetworking在这里接收。 – niravdesai21