Abbiamo un problema con il download di file dal server in modalità background. Il campo "Autorizzazione" dell'intestazione HTTP viene perso durante il reindirizzamento della richiesta a un altro server.NSURLRequest ha perso l'intestazione HTTP "Autorizzazione" durante il reindirizzamento della richiesta
Abbiamo fatto alcuni esperimenti e notato che altri campi (anche gli stessi ma con il simbolo di sottolineatura alla fine "Autorizzazione_") funzionano perfettamente in reindirizzamento. Sembra che questo campo venga cancellato in base ad alcuni motivi di sicurezza, ad esempio se server diversi utilizzano dati di autenticazione diversi.
È possibile aggiungere “Autorizzazione” campo manualmente in modalità primo piano con
metodoURLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:
. C'è un problema quando abbiamo provato a utilizzare la richiesta di reindirizzamento in modalità background. Perché in base alla documentazione "Attività nelle sessioni in background seguono automaticamente i reindirizzamenti."
Non riesco a trovare nulla su saltare questo campo in RFC 2616, ma supponiamo che probabilmente ci sia una soluzione non documentata per salvare il campo "Autorizzazione" durante il reindirizzamento in modalità background .
Let me per scontato che il nostro server front-end può fornire qualche campo particolare nella risposta di reindirizzamento che direbbero che server di reindirizzamento è attendibile e possiamo usare campo “Autorizzazione” senza alcuna modifica.
Questo è solo un idea e probabilmente dovremo usarla in qualche modo. Potresti indirizzarci per favore?
Grazie, Rafał. Ho avuto una conversazione con l'ingegnere Apple su WWDC Lab su questa domanda e ha convenuto che potrebbe essere una buona soluzione utilizzare alcuni campi personalizzati come "Authorization_" (con underscore). Sembra un trucco, ma funziona in background come previsto – gN0Me