POST-Anfrage mit AFNetworking 2.0 funktioniert nicht, aber im HTTP-Anfragetester
Ich habe gerade angefangen, das Neue zu benutzenAFNetworking 2.0
API verwendet seit einiger Zeit die Vorgängerversionen. Ich versuche einen Moorstandard zu machenhttp POST request
, aber leider geht es mir nicht so gut. Das ist mein aktueller Code:
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);
}];
Nun gibt dies a zurückJSON
von(NULL)
und gibt mir keinen Statuscode wie404
oder so (übrigens, wie erreichen wir den Statuscode bei Verwendung von AFN 2.0?). Allerdings versuche ich die Informationen mit einer Web-App wieapikitchen.com welches testet dasHTTP Post request
Bei mir funktioniert es, wenn ich den Benutzernamen und das Passwort in dieparam
Feld. Also ist wirklich meine Frage, warum nicht dieparameters
in demAFN 2.0 parameter property
verhalten sich genauso wie dieparameters
in der Web App? Und allgemeiner, warum sind die nichtpost request parameters
für mich arbeiten inAFN 2.0
?
Vielen Dank für die Hilfe im Voraus,
Mike
BEARBEITEN: Ich habe Probleme mit der Implementierung des vorgeschlagenen Fixes. Meine Post-Methode sieht jetzt so aus, macht aber im Moment keinen Sinn für mich.
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);
}];