2014-07-24 13 views
5

Ho un UITextField e voglio aggiornare il mio server quando scrivo qualcosa in UITextField e premere il pulsante di aggiornamento, ho usato AFNetworking, ma ho un errore:iOS POST con AFNetworking: NSLocalizedDescription = Richiesta non riuscita: errore interno server (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)} 

Ecco il mio codice pulsante Update:

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); 
}]; 

apprezzato qualsiasi aiuto!

+0

Si tratta di un errore del server, quindi probabilmente qualcosa non va sul tuo server, non sul client. Controlla i log del tuo server per vedere cosa sta succedendo. Questo non è un problema iOS. – Dima

+1

Il tuo server si aspetta che Content-Type sia "text/plain" o "application/json"? Il tuo codice iOS mostra che stai usando AFJSONRequestSerializer (che prenderà i tuoi parametri e li invierà come JSON invece di testo normale) ma la risposta del tuo server dice che "Content-Type" dovrebbe (?) Essere "text/plain"? – Zhang

+0

@Zhang ho il problema esatto, so che il mio server si aspetta "text/plain" ma non posso rendere accettabile il mio JSON valido inviando come NSDictionary. Ricevo lo stesso errore (richiesta non riuscita: errore interno del server (500)). Allora come posso rendere accettabile il mio json, puoi aiutarmi? Grazie in anticipo. –

risposta

-2

rimuovere questa riga dal codice:

manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 

e cambiare la tua requestSerializer a: [AFHTTPRequestSerializer serializer];

Questo funziona bene nella mia applicazione.

+0

ma .... perché ???? –

+0

Questo è sbagliato su così tanti livelli. Non è possibile assegnare un serializzatore di richiesta al serializzatore della risposta del gestore. – Sebyddd

+0

non intendeva assegnare il serializzatore della richiesta al serializzatore della risposta. – Gokberk

1

Codice di errore, -1011 significa kCFURLErrorBadServerResponse (da docs). Il tuo servizio web (API) ti dà una risposta per la quale il serializzatore richiesta/risposta di AFNetworking non lo sa. Chiedi al tuo team di sviluppatori di vedere e correggere l'errore.

Problemi correlati