2013-01-17 8 views
11

ho il seguente codice:risposta JSON viene interpretato come text/plain

NSURL *URL = [NSURL URLWithString:[@"some-address"]]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; 

RKObjectRequestOperation *requestOperation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:[self.objectManager responseDescriptors]]; 

[requestOperation start]; 
[requestOperation waitUntilFinished]; 

ottengo il seguente errore.

Object request failed: Underlying HTTP request operation failed with error: Error Domain=AFNetworkingErrorDomain Code=-1016 "Expected content type {(
    "application/x-www-form-urlencoded", 
    "application/json" 
)}, got text/plain" UserInfo=0x1f5e3c40 {NSLocalizedRecoverySuggestion={"total_rows":16,"offset":1,"rows":[ 

{"id":"1","key":1,"value":{"_id":"1","_rev":"1-e75042683867a7030fc4d3aa3b72ef35", 
"user":{ 
"userId":"1", 
"name":"A", 
....... 
]}}, ..... 

Perché viene visualizzato questo errore quando la risposta è in formato JSON?

risposta

20

ce l'abbiamo fatta. è sufficiente impostare

[RKMIMETypeSerialization registerClass:[RKXMLReaderSerialization class] forMIMEType:@"text/plain"]; 

e sentitevi liberi di cambiare classe RKXMLReaderSerialization con classe RKNSJSONSerialization se si sta utilizzando JSON invece di XML (XML era il nostro caso).

+0

grazie che ha aiutato – zyxel

+0

Stefano Mondino, tu sei l'uomo! –

+0

mi ha salvato la vita grazie mille –

1

Non hai impostato correttamente l'intestazione del tipo mime nella tua risposta. Notare l'errore dice got text/plain, mentre il codice è in attesa di application/json o application/x-www-form-urlencoded.

+0

e se MIME TYPE (lato server) non è sotto il mio controllo? Sto usando il Restkit 0.20 –

+0

quindi vediamo se è possibile sostituire/aggiungere i tipi mime accettabili lato client –

+0

già eseguiti. Ho usato questo: [RKMIMETypeSerialization registerClass: [RKXMLReaderSerialization class] perMIMEType: @ "text/plain"]; ma continua a non riuscire a mappare gli oggetti. Ogni richiesta/risposta di rete funziona bene in tutte le mie app tranne questa. Abbiamo informato i "server guys" di questo bug (non c'è motivo di impostare un testo/plain mimetype quando in realtà stai inviando un vero XML ben formattato) ma non lo risolvono. Ci deve essere qualcosa all'interno di XML Parser (che NON è più il Restkit dal 0.20), forse dovrei aprire un altro argomento per questo (nru chiesto su JSON) –