2009-02-07 8 views
0

Je veux télécharger un fichier audio à partir d'une URL courte (comme: www.adjix.com) Lorsque je tente de lien normal, il est OK, mais depuis l'URL courte, comment la première redirect puis téléchargerTélécharger le fichier De URL courte

J'utilise cette partie du code pour créer la demande:

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlToSound]]; 

NSURLConnection *theConnection =[[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 

if (theConnection) { 
    self.receiveData = [[NSMutableData data] retain]; 
} 

Et ce code pour voir en-tête:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ 
    [receiveData setLength:0]; 

    if ([response isKindOfClass:[NSHTTPURLResponse self]] ) { 
     NSDictionary *headers = [(NSHTTPURLResponse *)response allHeaderFields]; 
     NSLog(@"headers: %@", headers); 
    } 
} 

Lorsque je tente de télécharger directement, lien vers la tête de MP3 er est:

"Accept-Ranges" = bytes; 
    Connection = "Keep-Alive"; 
    "Content-Length" = 21316; 
    "Content-Type" = "audio/mpeg"; 
    Date = "Sat, 07 Feb 2009 16:01:34 GMT"; 
    Etag = "\"2d810-5344-7dda240\""; 
    "Keep-Alive" = "timeout=15, max=100"; 
    "Last-Modified" = "Sat, 25 Jun 2005 12:26:41 GMT"; 
    Server = Apache; 

Lorsque je tente de télécharger le fichier avec une URL courte (adjix.com/3na3), l'en-tête est:

"Cache-Control" = "max-age=60"; 
    Connection = close; 
    "Content-Length" = 692; 
    "Content-Type" = "text/html"; 
    Date = "Sat, 07 Feb 2009 19:18:23 GMT"; 
    Expires = "Sat, 07 Feb 2009 19:19:23 GMT"; 
    Server = "Apache/1.3.41 (Darwin) mod_ssl/2.8.31 OpenSSL/0.9.7l"; 

Répondre

0

Pouvez-vous fournir plus d'informations? En particulier, il serait bon de mentionner les classes que vous utilisez pour effectuer la requête HTTP, ainsi que les interruptions lorsque vous utilisez l'URL redirigée.

0

Vous pouvez essayer la classe GTMHTTPFetcher, qui fait partie de Google Toolbox for Mac. Il gère la redirection pour vous.

0

NSURLConnection a une méthode déléguée que vous pouvez implémenter spécifiquement pour gérer les redirections. Cependant, il se peut que le serveur auquel vous vous connectez se comporte différemment à cause de la chaîne de l'agent utilisateur de votre requête.

Questions connexes