当我使用NSCachedURLResponse时,我得到了“301PermMove”

时间:2015-12-16 06:37:59

标签: ios nsurlcache nscache

当我测试NSURLCache时,我得到了“301PermMove”,这是我的代码

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{

NSURL *url = [NSURL URLWithString:@"https://www.github.com"];
NSURLRequest *urlRequest = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10];
NSURLCache *shareCache = [NSURLCache sharedURLCache];
NSCachedURLResponse *resp = [shareCache cachedResponseForRequest:urlRequest];
NSLog(@"cache data:%@",[[NSString alloc]initWithData:resp.data encoding:NSUTF8StringEncoding]);

[NSURLConnection sendAsynchronousRequest:urlRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {

    NSLog(@"data:%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
}];
}

第一次触摸:缓存数据为零,第二次触摸:缓存数据为301PermMove 。为什么?我不知道。

1 个答案:

答案 0 :(得分:2)

您将获得HTTP响应状态代码301,已永久移动。这意味着您要查找的资源已移动到另一个位置。对我来说,这很容易,因为问题是旧的URL从http更改为https。不幸的是,我没有您的问题的答案,但是您可以尝试访问URL而无需重定向。

希望这会有所帮助。