1.問(wèn)題描述
應(yīng)產(chǎn)品需求,APP中大都存在發(fā)送驗(yàn)證碼的功能;最近在工作中,發(fā)現(xiàn)了這么一個(gè)問(wèn)題;A , B兩個(gè)頁(yè)面;A為一級(jí)頁(yè)面,B為二級(jí)頁(yè)面;B為A在push操作后的頁(yè)面;在B頁(yè)面中有發(fā)送驗(yàn)證碼的邏輯,在所需參數(shù)填寫(xiě)完畢后,此時(shí)故意填寫(xiě)錯(cuò)誤參數(shù),網(wǎng)絡(luò)請(qǐng)求后服務(wù)器返回錯(cuò)誤提示信息?;氐紸頁(yè)面再次進(jìn)入B頁(yè)面,此時(shí)正確填寫(xiě)所有參數(shù),確認(rèn)后提交后發(fā)現(xiàn)此時(shí)并沒(méi)有發(fā)生網(wǎng)絡(luò)請(qǐng)求,而是出現(xiàn)了上次的錯(cuò)誤信息提示。
思路一:
首先考慮到是網(wǎng)絡(luò)緩存的問(wèn)題,看代碼,如下:
_sessionManager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
并沒(méi)有加載本地的緩存,那么問(wèn)題出在哪里呢?
思路二:
是否是因?yàn)榫W(wǎng)絡(luò)請(qǐng)求超時(shí)的原因,看代碼,如下:
_sessionManager.requestSerializer.timeoutInterval = 30;
超時(shí)時(shí)間設(shè)置為30s,發(fā)送驗(yàn)證碼的倒計(jì)時(shí)是60s;
最后把超時(shí)時(shí)間修改為60s,并且在post的請(qǐng)求里面添加了NSURLRequestReloadIgnoringLocalCacheData的設(shè)置,然后跑項(xiàng)目,問(wèn)題解決了。
綜上
問(wèn)題來(lái)源是post的請(qǐng)求緩存可能出現(xiàn)了(但是項(xiàng)目本身里面沒(méi)有,這個(gè)問(wèn)題還有待研究);希望小伙伴有知道具體原因的,不吝賜教QAQ;