HTTP 202狀態碼的處理方式

最近在爬某網站,谷歌瀏覽器打開是ok的,可以顯示網頁內容。程序有時候也可以抓到相應的內容,可有時候就不行。我抓取的是json格式的數據,在解析的時候有時就成功,有時報錯。經過一番盤查,發現解析報錯的時候,response返回狀態碼是202,咦。。。這個從來沒見過

於是,又是一番谷歌,找到相關解釋:

1.202 Accepted 表示服務器端已經收到請求消息,但是尚未進行處理。但是對於請求的處理確實無保證的,即稍後無法通過 HTTP 協議給客戶端發送一個異步請求來告知其請求的處理結果。這個狀態碼被設計用來將請求交由另外一個進程或者服務器來進行處理,或者是對請求進行批處理的情形

2.202狀態碼適合異步任務或者說需要處理時間比較長的請求,避免HTTP連接一直佔用,超時這些情況。常見的就是使用MQ異步處理批任務,客戶端定時輪訓結果。

這也沒有解決方案啊,於是乎,debug,找到了一些靈感。在有些時候,返回的是200,有時是202。

重點來了,解決方案。。。

能不能一直請求一個網址,遇到狀態碼是202的就再去請求一遍,直到狀態碼是200。最終,這個方案解決了狀態碼是202的問題。

當然,這個是我針對某網站的解決方案,至於其他網站是不是也是同樣的解決方案,就要單獨分析了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章