2014-07-24 10 views
5

Mam UITextField i chcę zaktualizować mój serwer, gdy piszę coś w UITextField i naciśnij przycisk aktualizacji, użyłem AFNetworking, ale mam błąd:iOS POST z AFNetworking: NSLocalizedDescription = Żądanie nie powiodło się: wewnętrzny błąd serwera (500)

Domain=com.alamofire.error.serialization.response Code=-1011 
"Request failed: internal server error (500) 
{ status code: 500, headers { 
"Access-Control-Allow-Headers" = "Origin, X-Requested-With, Content-Type, Accept"; 
"Access-Control-Allow-Methods" = "OPTIONS,GET,POST,PUT,DELETE"; 
"Access-Control-Allow-Origin" = "*"; 
Connection = "keep-alive"; 
"Content-Type" = "text/plain"; 
Date = "Thu, 24 Jul 2014 00:41:56 GMT"; 
Server = Cowboy; 
"Transfer-Encoding" = Identity; 
Via = "1.1 vegur"; 
"X-Powered-By" = Express; 
} }, NSLocalizedDescription=Request failed: internal server error (500)} 

Oto mój kod przycisk Aktualizacja:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 


NSDictionary *params = @ {@"status" :_status}; 


[manager POST:BASE_URL parameters:params 
     success:^(AFHTTPRequestOperation *operation, id responseObject) 
{ 
    NSLog(@"JSON: %@", responseObject); 
} 
     failure: 
^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

Doceniona za każdą pomoc!

+0

To błąd serwera, więc prawdopodobnie coś jest nie tak na serwerze, a nie na kliencie. Sprawdź dzienniki serwera, aby zobaczyć, co się dzieje. To nie jest problem z systemem iOS. – Dima

+1

Czy twój serwer oczekuje, że Content-Type będzie "text/plain" lub "application/json"? Twój kod systemu iOS pokazuje, że używasz AFJSONRequestSerializer (który zajmie twoje parametry i wyśle ​​je jako JSON zamiast zwykłego tekstu), ale odpowiedź twojego serwera mówi "Content-Type" powinno (?) Być "text/plain"? – Zhang

+0

@Zhang Mam dokładny problem, wiem, że mój serwer oczekuje "text/plain", ale nie mogę zaakceptować mojego prawidłowego JSON, wysyłając jako NSDictionary. Otrzymuję ten sam błąd (żądanie nie powiodło się: błąd wewnętrznego serwera (500)). Więc jak mogę zaakceptować mój json, czy możesz mi pomóc? Z góry dziękuję. –

Odpowiedz

-2

Usuń ten wiersz z kodu:

manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 

i zmienić requestSerializer do: [AFHTTPRequestSerializer serializer];

To działa prawidłowo w mojej aplikacji.

+0

ale .... dlaczego ???? –

+0

To źle na tylu poziomach. Nie można przypisać serializera żądań do serializatora odpowiedzi menedżera. – Sebyddd

+0

nie oznacza, że ​​serializator żądań jest przypisywany do serializatora odpowiedzi. – Gokberk

1

Kod błędu, -1011 oznacza kCFURLErrorBadServerResponse (od docs). Twoja usługa sieciowa (API) dająca odpowiedź, której numerator żądania/odpowiedzi od AFNetworking nie zna. Poproś zespół programistów o sprawdzenie i naprawienie błędu.

Powiązane problemy