是因为NSURLRequest的默认缓存机制,需将NSURLRequest的cachePolicy属性来设置请求的缓存策略。
iOS对NSURLRequest提供了7种缓存策略:(实际上能用的只有4种)
NSURLRequestUseProtocolCachePolicy  // 默认的缓存策略(取决于协议)
NSURLRequestReloadIgnoringLocalCacheData  // 忽略缓存,重新请求
NSURLRequestReloadIgnoringLocalAndRemoteCacheData  // 未实现
NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData  // 忽略缓存,重新请求
NSURLRequestReturnCacheDataElseLoad  // 有缓存就用缓存,没有缓存就重新请求
NSURLRequestReturnCacheDataDontLoad  // 有缓存就用缓存,没有缓存就不发请求,当做请求出错处理(用于离线模式)
NSURLRequestReloadRevalidatingCacheData  // 未实现
AFN中找到AFURLRequestSerialization.m文件 找到
- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
                                 URLString:(NSString *)URLString
                                parameters:(id)parameters
                                     error:(NSError *__autoreleasing *)error 
加上
[mutableRequest setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
最终代码
- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
                                 URLString:(NSString *)URLString
                                parameters:(id)parameters
                                     error:(NSError *__autoreleasing *)error
{
    NSParameterAssert(method);
    NSParameterAssert(URLString);
    NSURL *url = [NSURL URLWithString:URLString];
    NSParameterAssert(url);
    NSMutableURLRequest *mutableRequest = [[NSMutableURLRequest alloc] initWithURL:url];
    mutableRequest.HTTPMethod = method;
    [mutableRequest setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
    for (NSString *keyPath in AFHTTPRequestSerializerObservedKeyPaths()) {
        if ([self.mutableObservedChangedKeyPaths containsObject:keyPath]) {
            [mutableRequest setValue:[self valueForKeyPath:keyPath] forKey:keyPath];
        }
    }
    mutableRequest = [[self requestBySerializingRequest:mutableRequest withParameters:parameters error:error] mutableCopy];
    return mutableRequest;
}