La solicitud POST con AFNetworking 2.0 no funciona, pero funciona en el probador de solicitud HTTP
Acabo de empezar a usar el nuevoAFNetworking 2.0
API habiendo usado las versiones anteriores por un tiempo. Estoy tratando de hacer un estándar de boghttp POST request
, pero lamentablemente no lo estoy haciendo muy bien. Este es mi código actual:
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);
}];
Ahora esto devuelve unJSON
de(NULL)
y no me da un código de estado como404
o algo así (por cierto, ¿cómo obtenemos el código de estado al utilizar AFN 2.0?). Sin embargo, cuando intento la información con una aplicación web comoapikitchen.com que prueba elHTTP Post request
Para mí, funciona cuando pongo el nombre de usuario y la contraseña en elparam
campo. Así que realmente mi pregunta es, ¿por qué noparameters
en elAFN 2.0 parameter property
actuar de la misma manera que laparameters
en la aplicación web? Y más en general, ¿por qué no son lospost request parameters
trabajando para mi enAFN 2.0
?
Gracias por la ayuda por adelantado,
Micro
EDITAR: Estoy luchando con la implementación de la solución sugerida. Mi método de publicación ahora se ve así, pero no tiene sentido para mí ahora.
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);
}];