Я использовал AFNetworking 1.x и пытаюсь перейти на 2.x. Однако то, что работало нормально, теперь сломано. Я вложил в подкласс AFHTTPRequestOperationManager, и это код одного из моих методов в этом подклассе:
AFHTTPRequestOperation *operation = [self POST:@"api.php" parameters:self.requestPOST success:^(AFHTTPRequestOperation *operation, id responseObject) {
//success code here
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//failure code here
}];
В моем методе init для моего подкласса я установил baseURL и следующее:
self.requestSerializer = [AFJSONRequestSerializer serializer];
self.responseSerializer = [AFJSONResponseSerializer serializer];
Когда это выполняется, он успешно достигает сервера, и сервер отправляет ответ. Однако сервер показывает, что входные данные $ _POST, $ HTTP_RAW_POST_DATA и php: // пусты. Я проверяю данные тела NSURLRequest перед отправкой, и они правильно заполняются данными JSON.
Есть идеи, почему данные POST отображаются как пустые, когда они достигают сервера?
Я не знаю, но я могу предоставить вам код, который я использую
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
// manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
[manager POST:urlStr parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
success(dict);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error);
}];
Попробуйте этот код. Дайте мне знать, если проблема не решается ..!
Других решений пока нет …