AFNetworking 3.0数据无法被读取,因为它的格式不正确
还有其他类似的题目,但没有一个帮助我。 我要发送一个PUT
请求到服务器为了改变约会的状态,所以我做了这个方法-(void)appointmentStatusChangedTo:(NSString *)statusID atAppointmentID:(NSString *)appointmentID
在其中我设置url和参数为
NSString *string = [NSString stringWithFormat:@"%@/API/Appointments/3",BaseURLString]; NSDictionary *para = @{ @"AppointmentStatusId":statusID, @"ID":appointmentID };
然后我做了URL请求
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; NSMutableURLRequest *req = [[AFJSONRequestSerializer serializer] requestWithMethod:@"PUT" URLString:string parameters:para error:nil];
之后,我将授权令牌的标头设置为
NSString *token = [NSString stringWithFormat:@"Bearer %@",[[NSUserDefaults standardUserDefaults] objectForKey:@"userToken"]]; [req setValue:token forHTTPHeaderField:@"Authorization"];
所以最后我把它称为
[[manager dataTaskWithRequest:req completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error){ if (!error) { if (response) { NSLog(@"Respose Object: %@",responseObject); [self.patientsAppointmentsTableView reloadData]; } } else { // NSLog(@"Error: %@, %@, %@", error, response, responseObject); NSLog(@"Error: %@", error.localizedDescription); } }] resume];
现在,它正在成功发送数据到服务器,但作为我收到的答复
错误:数据无法被读取,因为它的格式不正确。
我不确定目前的反应可能是什么样子,因为我没有联系后端人员。 但据我记忆,这只是一个简单的1.所以请告诉我如何使用AFNetworking 3.0或任何改变我的代码处理任何types的响应。
尝试使用下面的代码:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer]; [serializer setStringEncoding:NSUTF8StringEncoding]; manager.requestSerializer=serializer; manager.responseSerializer = [AFHTTPResponseSerializer serializer];
尝试下面的代码使用Afnetworking 3.0
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; [manager GET:url parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) { NSLog(@"%@",responseObject); self.responseHandlers(YES,responseObject); } failure:^(NSURLSessionTask *operation, NSError *error) { self.responseHandlers(NO,nil); }];