Swift:URLSession.shared.dataTask 表示状态代码 304 = 200?

swa*_*ner 6 swift urlsession

我正在请求如下所示的 JSON-API:

     var request = URLRequest(url: url)
    request.httpMethod = "GET"
    request.addValue(CredentialsProvider.shared.credentials, forHTTPHeaderField: "Authorization")

    let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in
        guard let data = data, let _ = response, error == nil else {
            return
        }

        let response1 = response as! HTTPURLResponse
        print(response1.statusCode) // 200 instead of 304
    }
Run Code Online (Sandbox Code Playgroud)

由于服务器进行缓存(我通过 CharlesProxy 验证),我预计状态代码为 304,但已记录 200 - 有没有办法获取“真实”状态代码?

小智 7

将cachePolicy设置为.reloadIgnoringCacheData对我有用。

request.cachePolicy = .reloadIgnoringCacheData