5.5.networkThread()函數承擔套接字請求的主要任務:1。執行while循環。如果s_requestQueue的請求列表為空,它將阻止線程進入等待狀態並等待被喚醒。如果它不為空,則獲取請求隊列中的第壹個請求,並創建壹個響應對象HttpResponse並將其添加到響應隊列中。然後執行processResponse()函數。執行processResponse函數後,將設置相應HttpResponse對象中的ResponseData等數據,然後執行cocos線程中的http client::DispatchResponseCallBacks()函數。http client::dispatcherresponsecallbacks()的函數將從響應隊列中獲取第壹個響應對象,然後獲取響應對象對應的請求對象,並執行請求對象HttpRequest對應的回調函數,該函數在_sendRequest()中設置。然後繼續執行下壹個循環,直到HttpClient對象被銷毀,然後跳出循環。跳出循環後從請求隊列中移除元素,並清空請求隊列的內存。整個壹般請求過程完成。
6.重點分析processResponse()函數中的processTask()函數:首先獲取該函數中的請求類型(get、put、post、delete),然後執行processTask()函數。執行processTask()函數後,將設置請求的響應數據和響應代碼,並設置響應是否成功。process task(request type & amp;getresponsedataa & amp;響應代碼。響應頭(錯誤緩沖區)執行主要的請求工作:在xoce項目中,該函數使用OC的基礎框架下與http請求相關的接口。NSURLConnection類用於連接服務器以執行scheduleInRunLoop:form mode:函數和start函數,NSMutableURLRequest對象用於保存URL、請求數據和連接超時等參數。請求成功時loop【【ns run loop current unloop】run mode:nsdefaultrunloopmode before date:【ns date遙遠的未來】】;直到請求成功,從HttpAsynConnection對象的responseData成員對象中獲取數據並寫入& GetResponseData,從而獲取到&的響應數據;GetResponseData引用。http sync connection類定義:@ interface http sync connection:ns object