Sto utilizzando una sottoclasse di NSURLProtocol per intercettare tutte le chiamate HTTP e modificare l'agente utente e aggiungere altri header HTTP richiesti dal mio server.NSURL Avanzamento del protocollo e caricamento post
-(id)initWithRequest:(NSURLRequest *)request
cachedResponse:(NSCachedURLResponse *)cachedResponse
client:(id <NSURLProtocolClient>)client
{
NSMutableURLRequest* lInnerRequest;
//************************************************
lInnerRequest = [request mutableCopy];
[lInnerRequest setValue:@"MyUserAgent" forHTTPHeaderField:@"User-Agent"];
//************************************************
self = [super initWithRequest:lInnerRequest
cachedResponse:cachedResponse
client:client];
//************************************************
if (self)
{
self.innerRequest = lInnerRequest;
}
//***********************************00*************
[lInnerRequest release];
//************************************************
return self;
}
mio protocollo utilizza poi un NSURLConnection
- (void)startLoading
{
self.URLConnection = [NSURLConnection connectionWithRequest:self.innerRequest delegate:self];
}
ho quindi implementare tutto il metodo delegato nel NSURLConnection inoltrando la chiamata al metodo NSURLProtocolClient equivalente. Questo metodo funziona bene in generale, ma quando sto caricando i dati al server, il mio codice che sta usando NSURLConnection non viene richiamato il:
collegamento: didSendBodyData: totalBytesWritten: totalBytesExpectedToWrite:
capisco perché questo è poiché non ho implementato tale metodo nel protocollo NSURL poiché non esiste un metodo NSURLProtocolClient equivalente che possa essere utilizzato per segnalare il progresso del caricamento.
Qualcuno ha trovato qualche soluzione per questo?
questo è un problema molto interessante. hai mai trovato un modo per farlo? – jasongregori
Avere lo stesso problema con lo stesso identico caso d'uso. Qualcuno sa qualche soluzione alternativa? – nyi