前兩天遇到一個(gè)問(wèn)題剂跟,就是網(wǎng)絡(luò)請(qǐng)求拿到永遠(yuǎn)是舊的數(shù)據(jù)减途,大概15分鐘后就拿一次最新的。
1)查了數(shù)據(jù)曹洽,系統(tǒng)都是舊的鳍置,說(shuō)明的確拿的是舊數(shù)據(jù)。
2)Get返回的時(shí)候是成功的送淆,可是我用Charles去網(wǎng)絡(luò)抓包税产,發(fā)現(xiàn)根本沒(méi)有網(wǎng)絡(luò)請(qǐng)求發(fā)出。
3)自己調(diào)試了半天未果偷崩,然后和android端溝通發(fā)現(xiàn)他們那邊沒(méi)有這樣的問(wèn)題辟拷。然后我就懷疑是不是AFN會(huì)拿緩存的數(shù)據(jù),網(wǎng)上查了資料阐斜,問(wèn)一些同事都說(shuō)應(yīng)該不會(huì)衫冻。
4)后來(lái)只能問(wèn)了服務(wù)器那邊,那邊的確做了限制15分鐘再訪問(wèn)的限制谒出,主要是怕客戶(hù)端申請(qǐng)?zhí)鄷?huì)影響性能隅俘。
5)最后就在服務(wù)端的建議邻奠,header里面添加了一個(gè)參數(shù),保證每次都拿到最新的碌宴,相當(dāng)于取消15分鐘的限制。代碼如下颜骤。
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
[manager.requestSerializer setValue:@"max-age = 0" forHTTPHeaderField:@"Cache-Control"];