如何在嵌入式UIWebView中设置HTTP referer?
我经历过this但仍然没有成功。
1。在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];
但是还没有成功。
请帮我解决这个问题,或者告诉我这个代码有没有问题?
希望我能清楚地提出问题。
答案 0 :(得分:3)
您可以使用以下代码
设置默认用户代理NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Safari/528.16", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
很好地解释了here。
答案 1 :(得分:0)
我不确定你的情况到底是什么。但对我来说,只需在baseURL
中设置-loadHTMLString:baseURL:;
参数,就会自动将HTTP标头Referer
添加为baseURL
到HTML页面下的所有传出请求。