EDIT 07/14
Как упоминал Билл Берджес в комментарии к его ответу, этот вопрос связан с version 1.3
of 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);
}];
Есть ли лучший способ сделать то, что я хочу здесь, чтобы это сделать?
Спасибо за помощь!