2013-03-12 46 views
1

我試圖讓重定向的URL顯示在控制檯中。我可能會在我的代碼的某處丟失一些細節。任何幫助都會被理解。爲什麼我的nsurl請求不能在控制檯中顯示?

- (void)viewDidLoad { 
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 119,  self.view.bounds.size.width, self.view.bounds.size.height - 165)]; 
webView.backgroundColor = [UIColor whiteColor]; 
// webView.userInteractionEnabled = NO; 
webView.opaque = NO; 
[webView loadHTMLString:self.item.description baseURL:[NSURL URLWithString:self.item.link]]; 
[self.view addSubview:webView]; 
webView.delegate = self; 
} 


- (NSURLRequest *)connection:(NSURLConnection *)connection 
     willSendRequest:(NSURLRequest *)request 
     redirectResponse:(NSURLResponse *)redirectResponse 
{ 
//Make sure tinyurl is doing the redirection 
if([[[redirectResponse URL] host] compare:@"bitly.com" 
            options:NSCaseInsensitiveSearch] == NSOrderedSame) 
{ 
    NSLog(@"Redirect Location: %@", [request URL]); 
} 

//call [connection cancel]; to cancel the redirect and stop receiving data 
//return nil; to cancel redirect but continue receiving data 
//return request; will continue the redirection as normal 
    return request; 
} 

回答

2

您正在使用的NSURLConnectionDelegate委託方法是不是UIWebView

正確的方法你是不是裝在UIWebView任何請求,要麼你怎麼能指望NSLog打印出來的要求嗎? 如果您使用的是UIWebViewDelegate,那麼檢查您的案例的正確方法應該是:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { 

    NSLog(@"Redirect Location: %@",[request.URL absoluteString]); 
} 
0
- (NSURLRequest *)connection:(NSURLConnection *)connection 
     willSendRequest:(NSURLRequest *)request 
     redirectResponse:(NSURLResponse *)redirectResponse 

這不是一個UIWebView委託方法。所以除非你不顯示所有的代碼,否則它永遠不會被調用。

你需要創建一個NSURLConnection來利用這樣的調用。

NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; 
相關問題