Возникли проблемы с отправкой запросов с помощью AFNetWorking


Похоже, что AFNetworking не работает правильно для меня. В частности, когда я отправляю запрос apiKey на сервер, он выдает мне несанкционированную ошибку. ASIHTTPRequest работает нормально для меня, однако, так что, кажется, что-то я делаю неправильно в AFNetWorking. Я знаю, что проблема заключается в отправке apiKey, потому что, если я прокомментирую это, AFNetWork работает правильно. Однако мне все еще нужно отправить ключ API. Любая помощь будет оценена по достоинству.

AFNetWorking

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setValue:apiKey forHTTPHeaderField:@"apiKey"];
NSMutableDictionary *userinfo = [[NSMutableDictionary alloc] init];
[manager POST:urlStr parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    [operation setUserInfo:userinfo];  
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    [operation setUserInfo:userinfo];
}];
}

ASIHTTPRequest

  NSString *urlStr = [NSString stringWithFormat:@"%@/%@", submitReportUrl, [self urlEncode:path]];
 ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlStr]];
 [request setDelegate:self];
 NSMutableDictionary *userinfo = [[NSMutableDictionary alloc] init];
 [userinfo setObject:NSStringFromSelector(self.didFinishSelector) forKey:@"didFinishSelector"];
 [userinfo setObject:NSStringFromSelector(self.didFailSelector) forKey:@"didFailSelector"];
 [request setUserInfo:userinfo];
 [request addRequestHeader:@"apiKey" value:apiKey];
 [request setRequestMethod:method];
  NSArray *keys = [params allKeys];
  for ( NSString *key in keys )
        [request addPostValue:[params objectForKey:key] forKey:key];
 [self.operationQueue addOperation:request];
1 2

1 ответ:

manager.requestSerializer = [AFJSONRequestSerializer serializer]; 

У меня была та же проблема, работая с почтой. Так что исследуйте, где была проблема. Если вы не добавили строку about кода. AFNetworking автоматически добавит в заголовок

Content-Type : "text / html" либо одно Cotent-Type : "text / plain"

Добавляя выше код становится Тип контента: "application/json"

Таким образом, проблема решена. Так как сервер ожидает JSON.