POST-запрос с AFNetworking 2.0 не работает, но работает в тестере HTTP-запросов
Я только начал использовать новыйAFNetworking 2.0
API, который использовал предыдущие версии уже некоторое время. Я пытаюсь сделать болотный стандартhttp POST request
но, к сожалению, я не очень хорошо. Это мой текущий код:
AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"username" : self.usernameField.text,
@"password" : self.passwordField.text};
[operationManager POST:@"https:URL GOES HERE" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", [responseObject description]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
Теперь это возвращаетJSON
из(NULL)
и не дает мне код состояния, как404
или что-то еще (кстати, как мы получаем код состояния при использовании AFN 2.0?). Тем не менее, когда я пытаюсь получить информацию с помощью веб-приложения, какapikitchen.com который проверяетHTTP Post request
для меня это работает, когда я помещаю имя пользователя и пароль вparam
поле. Так что на самом деле мой вопрос, почему бы неparameters
вAFN 2.0 parameter property
действовать так же, какparameters
в веб-приложении? И в целом, почему неpost request parameters
работает на меня вAFN 2.0
?
Спасибо за помощь в продвижении,
Майк
РЕДАКТИРОВАТЬ: Я борюсь с реализацией предложенного исправления. Мой метод Post теперь выглядит так, но сейчас он не имеет смысла для меня.
AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"username" : self.usernameField.text,
@"password" : self.passwordField.text};
operationManager.requestSerializer.queryStringSerializationWithBlock =
^NSString*(NSURLRequest *request,
NSDictionary *parameters,
NSError *__autoreleasing *error) {
NSString* encodedParams = form_urlencode_HTTP5_Parameters(parameters);
return encodedParams;
};
[operationManager POST:@"URL HERE" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", [responseObject description]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];