Я работаю над проектом, который использует AFNetworking для подключения к интерфейсу API. Моя проблема заключается в том, как отправить запрос на серверную часть с содержимым тела, которое включает электронную почту, deviceId. Я нашел множество решений, совместимых с AFNetworking 2.0, а не 3.0.
Теперь я использую SessionManager, когда я инициализирую запрос, как я могу добавить контекст тела содержимого?
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters options:NSJSONWritingPrettyPrinted error:nil];
NSString *stringData = [[NSString alloc]initWithData:jsonData encoding:NSASCIIStringEncoding];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", nil];
[manager POST:_urlString parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
NSString *link = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"JSON: %@",link);
} failure:^(NSURLSessionTask *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
Я попытался поместить адрес электронной почты и идентификатор устройства в [параметр POST менеджера: Dict], но это не работает.
Может кто-нибудь сказать мне, как добавить тело в AFNetworking 3.0? Спасибо
AFHTTPSessionManager
и создать синглтон. Вот так:+ (instancetype)sharedManager { static MyManager *manager = nil; static dispatch_once_t pred; dispatch_once(&pred, ^{ manager = [[self alloc] initWithBaseURL:[NSURL URLWithString:@"http://baseURL.org/"]]; }); return manager; }
. Вы также можете установить поле заголовка при отправке запроса или в методе инициализации. - person Kim Jin   schedule 25.07.2017