EDIT 07/14AFNetworking - Jak uczynić żądanie POST
Jako Thomas Burgess wymieniono w komentarzu jego odpowiedź na to pytanie jest związane z version 1.3
z AFNetworking
. To może być nieaktualne dla nowo przybyłych tutaj.
Jestem zupełnie nowy w rozwoju iPhone i używam AFNetworking jako mojej biblioteki usług.
Wywoływany przeze mnie interfejs API jest RESTULT i muszę wysyłać żądania POST. Aby to zrobić, próbowałem z następującego kodu:
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];
Istnieją dwa główne problemy z tym kodem:
AFJSONRequestOperation
wydaje dokonaćGET
żądanie, a niePOST
jeden.- Nie mogę umieścić parametrów tej metody.
Próbowałem też z tym kodem:
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);
}];
Czy istnieje lepszy sposób, aby to, co chcę, żeby zrobić to?
Dzięki za pomoc!
Dziękujemy za odpowiedź! Tylko jedno pytanie: twój "SIOAPIClient" będzie "MyAPIClient" tutaj nie? –
Masz rację ... Kopiuję/wklejałem to z mojej własnej implementacji i zmieniłem nazwy klas. Zgubiłem miejsce, jak sądzę. Edytowałem swoją odpowiedź na pytanie, jak powinno być. –
Próbowałem zaimplementować klienta niestandardowego dokładnie tak, jak piszesz, ale pojawia się błąd: 'Brak znanej metody klasy dla selektora 'sharedClient''. Nagłówek jest dołączony poprawnie, więc zastanawiam się, dlaczego otrzymuję ten błąd. –