AFNetworking 3.0无法读取数据,因为格式不正确

Cha*_*lha 5 objective-c ios afnetworking-3

还有其他标题相似的问题,但没有一个对我有帮助。我必须向PUT服务器发送请求以更改约会状态,所以我使用了此方法,-(void)appointmentStatusChangedTo:(NSString *)statusID atAppointmentID:(NSString *)appointmentID在该方法中,我将URL和Parameters设置为

NSString *string = [NSString stringWithFormat:@"%@/API/Appointments/3",BaseURLString];
    NSDictionary *para = @{
                           @"AppointmentStatusId":statusID,
                           @"ID":appointmentID
                           };
Run Code Online (Sandbox Code Playgroud)

然后我提出了URL请求

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

    NSMutableURLRequest *req = [[AFJSONRequestSerializer serializer] requestWithMethod:@"PUT" URLString:string parameters:para error:nil];
Run Code Online (Sandbox Code Playgroud)

之后,我将授权令牌的标头设置为

 NSString *token = [NSString stringWithFormat:@"Bearer %@",[[NSUserDefaults standardUserDefaults] objectForKey:@"userToken"]];

    [req setValue:token forHTTPHeaderField:@"Authorization"];
Run Code Online (Sandbox Code Playgroud)

所以最后我称它为

[[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];
Run Code Online (Sandbox Code Playgroud)

现在它已成功将数据发送到服务器,但作为响应,我得到了

错误:由于格式不正确,无法读取数据。

我不确定目前未与后端人员联系,因此响应会是什么样子。但是据我所知,这只是一个简单的1。所以,请告诉我如何使用AFNetworking 3.0或代码中的任何更改来处理任何类型的响应。

Ekt*_*iya 3

尝试使用下面的代码:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
[serializer setStringEncoding:NSUTF8StringEncoding];

manager.requestSerializer=serializer;
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
Run Code Online (Sandbox Code Playgroud)