2011-11-21 7 views
16

Sto utilizzando RestKit in un'app iOS e ho bisogno di una gestione speciale per determinati codici di errore HTTP. Come può essere verificato il codice di stato HTTP della risposta all'interno di request:didFailLoadWithError:? C'è qualche voce nel dizionario userInfo dello NSError?RestKit: acquisizione del codice di stato HTTP quando una richiesta non riesce

Non ho trovato nulla nello RKRequestDelegate documentation.

Ecco l'interfaccia per il metodo delegato:

- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error 

risposta

50

Per le persone che utilizzano la nuova versione di RESTkit e ObjectManager, è possibile recuperare lo statuscode dal RKObjectRequestOperation:

operation.HTTPRequestOperation.response.statusCode

+0

Questa è la risposta corretta in RestKit v0.20 –

1

Il statusCode immobile trovato su RKResponse opere per me:

- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error 
{ 
    switch ([[objectLoader response] statusCode]) { 
     case 409: 
    ... 

} 
+0

Sto semplicemente utilizzando il RKClient, in modo da ottenere notificata tramite il RKRequestDelegate, non il ObjectManagerDelegate. Tutto ciò che RKRequestDelegate fornisce per gli errori è RKRequest e un NSError. – pepsi

+0

RKRequest ha una proprietà di risposta in 0.10.3. – Jon

3

Si scopre che didFailLoadWithError: non si chiama per errori HTTP. Il metodo request:didLoadResponse: viene ancora chiamato per errori HTTP, quindi la risposta (e quindi i codici di stato) sono disponibili.

Problemi correlati