1
如何在嵌入式UIWebView中設置HTTP referer?在UIWebView中指定HTTP referer
我已經通過this但仍沒有成功。
在viewDidLoad
,我寫了這個代碼,
[objWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"MY_URL"]]];
這裏是我的代碼:
- (BOOL) webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType) navigationType
{
NSDictionary *headers = [request allHTTPHeaderFields];
BOOL hasReferer = [headers objectForKey:@"Referer"]!=nil;
if (hasReferer) {
// .. is this my referer?
return YES;
} else {
// relaunch with a modified request
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
NSURL *url = [request URL];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[request setHTTPMethod:@"GET"];
[request setValue:@"Referer link" forHTTPHeaderField:@"Referer"];
[objWebView loadRequest:request];
});
});
return NO;
}
}
2.我試過這也viewDidLoad
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"MY_URL"]];
[request setValue:@"Referel URL" forHTTPHeaderField:@"Referer"];
[objWebView loadRequest:request];
但是還沒有成功。
請幫我解決這個問題,或者告訴我這個代碼有沒有問題?
希望我明確提出了問題。
您是否嘗試過直接修改傳遞給您的請求(而不是啓動新的請求)? – 2012-08-08 06:11:29
值得注意的是,你依靠範圍來區分兩個不同的變量,這兩個變量都被稱爲'request'(一個塊可以訪問它的父範圍)。換句話說,你在範圍內有一個名爲'request'的變量,然後創建它的另一個版本。這不完全錯誤,但可以混淆,並降低可讀性/可維護性 – 2012-08-08 06:14:52
@ctrahey請參閱我的更新的問題..可以請告訴我什麼是錯誤的,並給我任何建議,這個 – 2012-08-08 06:17:03