AFNetworking -Как выполнить запрос POST

РЕДАКТИРОВАТЬ 14.07

Как упомянул Билл Берджесс в комментарии к своему ответу, этот вопрос связан с version 1.3из AFNetworking. Это может быть устаревшим для новичков здесь.


Я новичок в разработке для iPhone и использую AFNetworking в качестве своей библиотеки сервисов.

API, который я запрашиваю, является RESTful, и мне нужно делать запросы POST. Для этого я попытался использовать следующий код:

NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"my_username", @"username", @"my_password", @"password", nil];
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/login"];

NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    NSLog(@"Pass Response = %@", JSON);
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
    NSLog(@"Failed Response : %@", JSON);
}];
[operation start];

Есть две основные проблемы с этим кодом:

  • AFJSONRequestOperationкажется, делает запрос GET, а не POST.
  • Я не могу указать параметры для этого метода.

Я также пробовал с этим кодом:

NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"my_username", @"username", @"my_password", @"password", nil];
NSURL *url = [NSURL URLWithString:@"http://localhost:8080"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];

[httpClient postPath:@"/login" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Succes : %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Failure : %@", error);
}];

Есть ли лучший способ сделать то, что я хочу здесь, чтобы сделать это?

Спасибо за помощь !

18
задан Meet Doshi 19 January 2016 в 06:51
поделиться