在使用UIWebView訪問網(wǎng)站時(shí)胚膊,經(jīng)常遇到的一個(gè)問題是需要登錄故俐。比如訪問新浪微博,或者訪問某個(gè)個(gè)人賬號(hào)紊婉,但是需要直接訪問url购披,卻會(huì)被重定向到登錄頁(yè)進(jìn)行登錄,如果要避免登陸一般做法是在url地址里面拼接相關(guān)登陸信息這種做法雖然可行但是不安全相對(duì)接下來(lái)的方法也麻煩肩榕。
那么真正的瀏覽器是如何做到的直接登錄刚陡?一般來(lái)說(shuō),答案都是cookies株汉。在你第一次登錄時(shí)筐乳,網(wǎng)站設(shè)置了cookie,瀏覽器保存這些攜帶了登錄信息的cookies乔妈,以后就可以直接登錄蝙云。
所以我們要做的就是在url request中帶上cookies。
我看網(wǎng)上很多的做法是自己設(shè)置一個(gè)cookie值路召,個(gè)人感覺雖然這種方式能辦到預(yù)期的效果勃刨,但是感覺很麻煩波材,要人為設(shè)置一堆參數(shù)。下面來(lái)介紹更加簡(jiǎn)單的辦法身隐。
NSURL *url = [NSURL URLWithString:@"需要跳轉(zhuǎn)的URL"];
NSMutableURLRequest *requst = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];
//這個(gè)方法獲取已經(jīng)登錄的cookie信息
NSArray *cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage].cookies;
NSDictionary *requestHeader = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies];
[requst setAllHTTPHeaderFields:requestHeader];
大功告成廷区,這種方式是不是更簡(jiǎn)單??jī)H需要幾行代碼搞定贾铝。