EDIT 07/14AFNetworking - Как сделать запрос POST
Как Билл Берджесс упоминалось в комментарии своего ответа, этот вопрос связан с 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);
}];
Есть ли лучший способ сделать то, что я хочу здесь, чтобы сделать это?
Спасибо за помощь!
Благодарим за ваш ответ! Только один вопрос: ваш 'SIOAPIClient' был бы« MyAPIClient »здесь нет? –
Вы правы ... Я копировал/вставлял это из своей собственной реализации и менял имена классов. Наверное, я пропустил пятно. Я отредактировал свой ответ, как это должно быть. –
Я пытался реализовать пользовательский клиент так же, как вы пишете, но я получаю сообщение об ошибке: 'Нет известного метода класса для selector 'sharedClient''. Заголовок включен правильно, поэтому мне интересно, почему я получаю эту ошибку. –