UIWebView请求网页链接的方法:
NSURL *url = [NSURL URLWithString:urlStr];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
NSURLRequest的构造方式有两种:
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];
//和
NSURLRequest *request = [NSURLRequest requestWithURL:url];
cachePolicy是请求的缓存策略,类型为NSURLRequestCachePolicy,[NSURLRequest requestWithURL:]默认设置缓存策略为NSURLRequestUseProtocolCachePolicy,超时时间默认是60s。
typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy)
{
//缓存策略根据网页协议中定义的缓存逻辑(如有效期等)
NSURLRequestUseProtocolCachePolicy = 0,
//忽略本地缓存
NSURLRequestReloadIgnoringLocalCacheData = 1,
//忽略本地缓存和远程代理的缓存
NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4,
NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,
//有本地缓存则加载,没有则重新请求
NSURLRequestReturnCacheDataElseLoad = 2,
//有本地缓存则加载,没有也不重新请求,类似脱机工作
NSURLRequestReturnCacheDataDontLoad = 3,
//只使用原始源的数据
NSURLRequestReloadRevalidatingCacheData = 5,
};
清除缓存的方法:
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
清除Cookie的方法:
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies]) {
[storage deleteCookie:cookie];
}