Domanda

Un Cliente abbia segnalato un errore di connessione con un profilo di strano:. A quanto pare non riesce solo per la prima richiesta URL tramite CFNetwork poiché l'applicazione ha lanciato

Il codice di errore a quanto pare di essere restituito da CFNetwork è di dominio CFStreamErrorHTTP, ma con il codice di errore -4, che non corrisponde ad alcun codice di errore definito pubblicamente per questo dominio.

In CFHTTPStream.h, i codici di errore definiti pubblicamente per fine CFStreamErrorHTTP sotto i migliori auspici a -3, fortemente suggerendo che -4 può essere un codice di errore che Apple sta usando, ma che non è ancora stato pubblicamente documentate.

Qualche idea di cosa sta succedendo qui? Ha chiunque altro visto questo codice di errore e trovato rima o ragione per questo?

È stato utile?

Soluzione

Probabilmente non è la risposta finale e questo potrebbe essere cambiato da quando hanno chiuso provenienza CFNetwork, ma ho trovato la seguente linea che indica che -4 è un errore di connessione persa.

http://www.opensource.apple. com / source / CFNetwork / CFNetwork-129.9 / HTTP / CFHTTPConnection.c

Altri suggerimenti

Credo che dovrete mostrare una parte del codice che è in mancanza, ma alcune domande in mente. In primo luogo, si può rintracciare questo problema da soli, si può riprodurlo? In particolare, sarebbe interessante vedere su quale thread questo accade, e ciò che è la modalità runloop corrente. Potrebbe essere indicativo di un ruscello o connessione che non schedulazione delle runloops CF interne.

Oltre a questo (ed è un peccato CFNetwork non viene più aggiornato pubblicamente), potrebbe essere un paio di cose zillion, ma avrete bisogno per registrare quante più informazioni è possibile se non è possibile eseguire il debug direttamente il fallimento (suggerimento suggerimento - https://github.com/fpillet/NSLogger può aiutare si accede in remoto le informazioni dal client).

Infine, porre la domanda sul Forum Mac Dev (o iOS Dev Forum se il codice viene eseguito su iOS). Ping Quinn, Egli sa tutto. Una volta che egli non può rispondere pubblicamente la questione, aprire un incidente DTS e mandarlo il biglietto #. E 'il ragazzo che si vuole prendere in considerazione il problema: -)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top