Ho una classe NSURLProtocol personalizzata che ho implementato con l'aiuto di this tutorial. Le mie implementazioni sono praticamente le stesse del tutorial, a parte nomi, modello di dati, ecc ...iOS - Utilizzare AFNetworking con classe NSURLProtocol personalizzata
In sostanza, sto tentando di inviare una richiesta HTTP, ma invece dell'URL che inizia con: "http: // ", deve iniziare con, dire:" bla: // "
Ora, sto provando a registrare la classe di protocollo e ad usarla tramite il framework AFNetworking, e ho qualche problema.
Il metodo canInitWithRequest:
inizia a restituire NO ad un certo punto e, a questo punto, la richiesta non riesce e continuo a ricevere un errore "URL non supportato".
Oltre alla registrazione della classe protocollo, ho cercato di aggiungere la classe di AFHTTPSessionManager
s' protocolClasses
chiamando questo nel metodo didFinishLaunchingWithOptions
:
[NSURLProtocol registerClass:[MyURLProtocol class]];
NSMutableArray *protocolsArray = [NSMutableArray arrayWithArray:[AFHTTPSessionManager manager].session.configuration.protocolClasses];
[protocolsArray addObject:[MyURLProtocol class]];
[AFHTTPSessionManager manager].session.configuration.protocolClasses = [protocolsArray copy];
e ho anche aggiunto lo schema URL all'URL Schemi nel app info.plist
Ancora senza fortuna ... È quello che sto cercando di fare anche possibile? E se sì, cosa potrei mancare? Grazie
I tuoi metodi nella classe NSURLProtocol vengono richiamati? – gnasher729
Sì, i metodi del protocollo sembrano funzionare correttamente. Inoltre, quando inserisco "http: //" all'inizio dell'URL della richiesta, il server risponde (ovviamente con la risposta sbagliata, perché è il protocollo sbagliato). Quindi le richieste sono state sicuramente inviate. – orenk86
Ho appena provato ciò che ryanwa suggerisce e funziona. –