1. 程式人生 > >iOS中HTTP請求使用cookie

iOS中HTTP請求使用cookie

一、iOS中Http請求對cookie的預設處理:1.一直以為ios的http請求不會自動處理請求中的cookie,所以一直認為客戶端請求預設是沒有Session的,現在發現自己的想法錯了很久。2.NSURLRequest預設的處理過程:類似於伺服器端和網頁端的session,其實NSURLRequest已經做了瀏覽器做的動作,幫你處理了Cookie。當你訪問一個連結時,NSURLRequest會幫你主動記錄下來你訪問站點的cookie,而且當你下次再訪問這個站點時,NSURLRequest會拿著上次儲存下來了的cookie繼續去請求。這規律同樣適用於ASIHTTPRequest。3.所以如果伺服器端使用了session,ios客戶端使用Http請求,預設就是已經有了session的。
4.NSURLRequest的一個屬性,HTTPShouldHandleCookies,表示Http請求是否自動處理Cookie,預設值為YES。二、cookie的讀寫:1.假如我們想自己對Cookie做一些處理,我們如何讀寫http請求中的cookie呢?在Foundation類庫中,有兩個重要的相關的類:NSHTTPCookieStorage和NSHTTPCookie。2.NSHTTPCookieStorage是一個管理Http請求中cookie的單例類,它會在一個全域性範圍內管理Cookie,在iOS中,cookie會限制在一個應用的範圍內。可以通過這個類來讀寫Cookie。3.NSHTTPCookie類代表cookie物件,通過內建的一些key,我們可以合成Cookie物件,然後寫入NSHTTPCookieStorage中,也可以從NSHTTPCookieStorage中讀取出存在的所有NSHTTPCookie。