Tüm HTTP çağrılarını engellemek ve kullanıcı aracısını değiştirmek ve sunucumun gerektirdiği başka bir http başlığı eklemek için NSURLProtocol alt sınıfını kullanıyorum.NSURLProtocol ve karşıya yükleme devam ediyor
-(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;
}
My protokol daha sonra bir NSURLConnection
- (void)startLoading
{
self.URLConnection = [NSURLConnection connectionWithRequest:self.innerRequest delegate:self];
}
Sonra eşdeğer NSURLProtocolClient yönteminin çağrısını ileterek NSURLConnection tüm delege yöntemini uygulamak kullanır. Bu genel olarak iyi çalışır ama sunucusuna veri yüklüyorum zaman NSURLConnection kullanıyor benim kod tekrar çağrılmadığı:
bağlantısı: didSendBodyData: totalBytesWritten: totalBytesExpectedToWrite:
bu olduğunu anlamak Yükleme ilerlemesini bildirmek için kullanılabilecek eşdeğer NSURLProtocolClient yöntemi olmadığından, bu yöntemi NSURLProtocol'da uygulamadığımdan beri.
Birisi bunun için herhangi bir geçici çözüm buldu mu?
çok ilginç bir sorundur. Bunu yapmak için bir yol buldun mu? – jasongregori
Aynı kullanım durumunda aynı kullanım durumunda. Herhangi bir geçici çözüm bilen var mı? – nyi