2009-12-23 2 views

ответ

1

Вы сможете узнать об этом только после подключения к NSURLConnection. Если вы добавите метод в свой делегат NSURLConnection, -connection: willSendRequest: redirectResponse :, вы будете уведомлены до того, как произойдут перенаправления. Просто возьмите URL-адрес из переданного запроса, и это ваш ответ.

+0

Я хочу сделать это синхронно .. это можно сделать? –

+0

Я так не верю. Apple отказывается от синхронных операций. –

6

я сделал это,

вот как работает решение

NSURL *originalUrl=[NSURL URLWithString:@"http://YourURL.com"]; 
NSData *data=nil; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:originalUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10]; 
NSURLResponse *response; 
NSError *error; 
data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
NSURL *LastURL=[response URL]; 
[request release]; 
[error release]; 
7

zanque, но для того, чтобы избежать загрузки «бесполезные» данных, я бы изменить метод HTTP для РУКОВОДИТЕЛЯ:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:orinigalURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:15.0]; 
[request setHTTPMethod:@"HEAD"]; 
NSURLResponse *response = nil; 
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil]; 
NSURL *finalURL = response.URL; 
+3

Это может быть лучше подходит как комментарий вместо ответа. Или, возможно, редактирование. – EWit

+1

@EWit, пользователь имеет 1 участник. Они не могут оставлять комментарии. Кроме того, это дает альтернативный ответ на вопрос. – Andy

+0

@ Andy Я только что сделал комментарий, предназначенный для предоставления некоторого, будущего, руководства. Но поскольку он распространяется на существующий ответ, лучше было бы поместить его как отредактировать ответ, чтобы люди, читающие его, были осведомлены о проблеме и решении. Также есть причина, по которой я решил использовать «может быть» вместо «должен быть». – EWit

Смежные вопросы