I et passer outre NSURLProtocol besoin de retourner une réponse HTTP avec statusCode spécifique. NSHTTPURLResponse n'a pas setter statusCode, donc j'ai essayé de passer outre avec:Comment configurer statusCode dans NSURLResponse
@interface MyHTTPURLResponse : NSHTTPURLResponse {}
@implementation MyHTTPURLResponse
- (NSInteger)statusCode {
return 200; //stub code
}
@end
méthode
surchargée startLoading de NSURLProtocol ressemble à ceci:
-(void)startLoading
{
NSString *url = [[[self request] URL] absoluteString];
if([url isEqualToString:SPECIFIC_URL]){
MyURLResponse *response = [[MyURLResponse alloc] initWithURL:[NSURL URLWithString:@"http://fakeUrl"]
MIMEType:@"text/plain"
expectedContentLength:0 textEncodingName:nil];
[[self client] URLProtocol:self
didReceiveResponse:response
cacheStoragePolicy:NSURLCacheStorageNotAllowed];
[[self client] URLProtocol:self didLoadData:[@"Fake response string"
dataUsingEncoding:NSASCIIStringEncoding]];
[[self client] URLProtocolDidFinishLoading:self];
[response release];
}
else{
[NSURLConnection connectionWithRequest:[self request] delegate:self];
}
}
Mais cette approche ne fonctionne pas, la réponse créée en NSURLProtocol est toujours avec statusCode = 0 sur la page Web. En même temps, les réponses renvoyées à partir du réseau par NSURLConnection ont des statusCodes normalement attendus.
Quelqu'un peut-il s'il vous plaît aider avec des idées comment configurer statusCode explicitement pour NSURLResponse créé? Merci.
Avez-vous trouvé une solution à ce problème? – TomSwift