Скачать файл с короткого URL - PullRequest
0 голосов
/ 07 февраля 2009

Я хочу скачать звуковой файл с короткого URL (например: www.adjix.com) Когда я пытаюсь с обычной ссылки, все в порядке, но с короткого URL, как сначала перенаправить, а затем загрузить

Я использую эту часть кода для создания запроса:

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

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

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

И этот код для просмотра заголовка:

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

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

Когда я пытаюсь загрузить напрямую, ссылка на MP3-заголовок:

    "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;

Когда я пытаюсь загрузить файл с коротким URL (adjix.com/3na3), заголовок:

    "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";

Ответы [ 3 ]

0 голосов
/ 08 февраля 2009

Возможно, вы захотите попробовать класс GTMHTTPFetcher, который является частью Google Toolbox для Mac . Он обрабатывает перенаправление для вас.

0 голосов
/ 11 февраля 2009

NSURLConnection имеет метод делегата, который вы можете реализовать специально для обработки перенаправлений. Однако может случиться так, что сервер, к которому вы подключаетесь, ведет себя иначе из-за строки пользовательского агента вашего запроса.

0 голосов
/ 07 февраля 2009

Можете ли вы предоставить больше информации? В частности, было бы хорошо упомянуть классы, которые вы используете для выполнения HTTP-запроса, а также что ломается, когда вы используете перенаправленный URL.

...