gpt4 book ai didi

ios - NSUrlsession 已触发,url 未调用,但结果

转载 作者:行者123 更新时间:2023-11-29 00:21:06 24 4
gpt4 key购买 nike

我有这种从 URL 获取 JSON 数据的方法:

-(void)getJsonResponse:(NSString *)urlStr success:(void (^)(NSDictionary *responseDict))success failure:(void(^)(NSError* error))failure
{
NSURLSession *session = [NSURLSession sharedSession];
NSURL *url = [NSURL URLWithString:urlStr];

NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
//NSLog(@"%@",data);
if (error) {
failure(error);
NSLog(@"Error: %@", [error localizedDescription]);
}
else {
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
//NSLog(@"%@",json);
success(json);
}
}];
[dataTask resume];
}

在 myViewController 中,viewWillAppear 我这样调用这个方法:

NSString * URLString = @"my.valid.url";

[self getJsonResponse:URLString success:^(NSDictionary *result) {
//here some code when succesful

} failure:^(NSError *error) {
NSLog(@"Something terrible happened");
}];

}

这很好用,但只有一次:

当我离开 myViewController 并再次进入时,

  • viewWillAppear 被调用,随后
  • [自己getJsonResponse:...被调用
  • 成功 block 中的代码已执行

但是:我注意到使用 Charles 监视网络事件时,没有调用 my.valid.url。

什么给了?我应该使共享 session 无效吗?如果是这样,什么时候?

最佳答案

设置 NSURLSessionConfiguration chachePolicyNSURLRequestReloadIgnoringCacheData 并重试。这是好的resource了解 Http 缓存。另请阅读苹果指南中提供的文档。

NSURLSessionConfiguration *config = NSURLSessionConfiguration.defaultSessionConfiguration;
config.requestCachePolicy = NSURLRequestReloadIgnoringCacheData;
NSURLSession *session = [NSURLSession sessionWithConfiguration:config];

关于ios - NSUrlsession 已触发,url 未调用,但结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44227253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com