WebScarab關鍵原始碼分析(3)(續)

2021-06-16 09:10:11 字數 506 閱讀 7532

接上篇。

接下來是兩個if,如果接收到的是401或者407返回碼(其含義分別為需驗證和**伺服器需驗證),則重新調整驗證資訊,並在下乙個while裡繼續請求內容。

再乙個是判斷如果request使用的是head方法,則setnobody(),因為head方法是不可能有內容部分的,呼叫setnobody後未讀取的輸入流_in將不會再嘗試讀取。

接著判斷connect域的內容,如果是不是keep-alive,則表示請求完成後連線應該釋放,此時將_in和_out置空,表示這該物件「認為」這兩個流是已經釋放的了。但實際上還並沒有釋放,因為_in裡還有內容沒有flush出來。

如果是keep-alive,則記錄lastrequesttime為當前時間,這個時間在判斷乙個socket是否為有效socket時會用到,詳見此類中的invalidsocket方法,邏輯較簡單,不再贅述。

隨後如果響應中不含有401或者407返回碼,迴圈退出,返回此reponse物件。

至此方法結束,對於此類的行為分析也差不多可以結束了。

Cartographer原始碼篇 原始碼分析 1

在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...

Leaf關鍵原始碼解析

欄位名稱 字段描述 biz tag 業務標識 max id 號段最大值 step 號段最小步長 description 描述資訊 update time 號段切換時間 logger.info update cache from db stopwatch sw newslf4jstopwatch tr...

AbstractListView原始碼分析3

normal list that does not indicate choices public static final int choice mode none 0 the list allows up to one choice public static final int choice ...