NSMutableURLRequest et code 304
bonjour ,
J'ai un petit souci je voudrais verifier si un fichier sur un serveur a été modifier .
j'ai donc utilisé NSMutableURLRequest pour creer ma requette a laquelle j'ai ajouter pour l'entete if-modified-since une date de base , qui est le meme que la date du fichier qui est sur le serveur .
le probleme est que je ne recoit pas le code 304 "not modified" mais toujours un code 200 "OK"
quelqu'un aurait il une idée ?
Merci d'avance
Voici le code que j'effectue
-(id)initWithUrlFichierZip:(NSString *)url withDelegate /sad.png' class='bbc_emoticon' alt=':(' />LoginViewController*)delegate
{
if(self = color=#bb23a0]super[/color] [color=#401a7f]init[/color){
date = [color=#733aa7]NSDate[/color] [color=#401a7f]alloc[/colorinit];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:/color][color=#733aa7]NSURL[/color][color=#000000] [/color]URLWithString[color=#000000]:url][/color]cachePolicy[color=#000000]:[/color]NSURLRequestUseProtocolCachePolicy[color=#000000] [/color]timeoutInterval[color=#000000]:[/color][color=#3523d5]30[/color][color=#000000;
//[request setHTTPMethod:@HEAD];
NSDateFormatter *formatter = [/color]NSDateFormatter[color=#000000] [/color][color=#401a7f]alloc[/color][color=#000000 init];
NSLocale *usLocale = [[/color][color=#733aa7]NSLocale[/color][color=#000000] [/color]alloc[color=#000000 initWithLocaleIdentifier:@en_US] autorelease];
[formatter setLocale: usLocale];
[formatter setTimeZone: color=#733aa7]NSTimeZone[/color] [color=#401a7f]timeZoneWithName[/color]: [color=#d0271c]@"GMT"[/color];
[formatter setDateFormat: @EEE, d MMM yyyy HH:mm:ss];
date = [formatter dateFromString:@Wed, 31 Oct 2012 15:42:05];
NSString *dateString = formatter [color=#401a7f]stringFromDate[/color]:[color=#508187]date[/color stringByAppendingString:@ GMT];
[formatter release];
[request addValue:dateString forHTTPHeaderField:@If-Modified-Since];
NSLog(@%@",[request allHTTPHeaderFields]);
connection = [NSURLConnection connectionWithRequest:request delegate:delegate];
/color]connection[color=#000000] [/color][color=#401a7f]start[/color][color=#000000;
}
return self;
}
J'ai un petit souci je voudrais verifier si un fichier sur un serveur a été modifier .
j'ai donc utilisé NSMutableURLRequest pour creer ma requette a laquelle j'ai ajouter pour l'entete if-modified-since une date de base , qui est le meme que la date du fichier qui est sur le serveur .
le probleme est que je ne recoit pas le code 304 "not modified" mais toujours un code 200 "OK"
quelqu'un aurait il une idée ?
Merci d'avance
Voici le code que j'effectue
-(id)initWithUrlFichierZip:(NSString *)url withDelegate /sad.png' class='bbc_emoticon' alt=':(' />LoginViewController*)delegate
{
if(self = color=#bb23a0]super[/color] [color=#401a7f]init[/color){
date = [color=#733aa7]NSDate[/color] [color=#401a7f]alloc[/colorinit];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:/color][color=#733aa7]NSURL[/color][color=#000000] [/color]URLWithString[color=#000000]:url][/color]cachePolicy[color=#000000]:[/color]NSURLRequestUseProtocolCachePolicy[color=#000000] [/color]timeoutInterval[color=#000000]:[/color][color=#3523d5]30[/color][color=#000000;
//[request setHTTPMethod:@HEAD];
NSDateFormatter *formatter = [/color]NSDateFormatter[color=#000000] [/color][color=#401a7f]alloc[/color][color=#000000 init];
NSLocale *usLocale = [[/color][color=#733aa7]NSLocale[/color][color=#000000] [/color]alloc[color=#000000 initWithLocaleIdentifier:@en_US] autorelease];
[formatter setLocale: usLocale];
[formatter setTimeZone: color=#733aa7]NSTimeZone[/color] [color=#401a7f]timeZoneWithName[/color]: [color=#d0271c]@"GMT"[/color];
[formatter setDateFormat: @EEE, d MMM yyyy HH:mm:ss];
date = [formatter dateFromString:@Wed, 31 Oct 2012 15:42:05];
NSString *dateString = formatter [color=#401a7f]stringFromDate[/color]:[color=#508187]date[/color stringByAppendingString:@ GMT];
[formatter release];
[request addValue:dateString forHTTPHeaderField:@If-Modified-Since];
NSLog(@%@",[request allHTTPHeaderFields]);
connection = [NSURLConnection connectionWithRequest:request delegate:delegate];
/color]connection[color=#000000] [/color][color=#401a7f]start[/color][color=#000000;
}
return self;
}
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
[request addValue:dateString forHTTPHeaderField:@Last-Modified];
et lorsque que j'ai ajouter cet valeur la date de réponse du serveur pour last-modofied a changer elle s'est avancé de 7 seconde c'est tres bizare
Une autre question en passant tu sais s'il est possible de recupererer la date a laquelle on a stoquer un fichier qui est dans le filemanager ?
Tu parles de NSFileManager donc tu devrais déjà avoir trouvé tout ce qu'il te faut dans la doc de cette classe ici. Tout y es détaillé, y compris pour récupérer la date de modification d'un fichier.
Par ailleurs, il serait bon d'aller te présenter dans la section "Présentation des membres" qu'on ait un peu connaissance de qui tu es, ton parcours, ton niveau en POO et ObjC, ton expérience...