iOS端連線H5頁面的時候手動增加Cookie的值
阿新 • • 發佈:2019-02-14
今天公司想要在所有iOS掉H5的頁面裡的請求頭的Cookie增加一個token欄位
因為我們公司有H5端,也有iOS端,當iOS端跳進H5端的時候,此時iOS端登入了,而H5端不能直接登入,這樣就會造成使用者困擾,即需要使用者進行雙登入,使用者體驗極為不好。因此我們準備在iOS端對H5的請求頭的Cookie中加入token欄位就能解決這個問題。
在載入web view的地方:// 載入URL
NSURL *url = [NSURL URLWithString:@"https://mtj.baidu.com/web/welcome/login"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
//獲取Cookie管理單例
NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
//獲取Cookie內的欄位陣列
NSMutableArray *cookies = (NSMutableArray *)[sharedHTTPCookieStorage cookiesForURL:[NSURL URLWithString:@"https://mtj.baidu.com/web/welcome/login"]];
//獲取原Cookie內的欄位
NSString *cookieStr = @"";
for (NSHTTPCookie *cookie in cookies) {
NSString *cookieString = [NSString stringWithFormat:@"%@=%@", [cookie name], [cookie value]];
cookieStr = [cookieStr stringByAppendingString:@" "];
cookieStr = [cookieStr stringByAppendingString:cookieString];
}
//新增需要增加的Cookie欄位
NSString *addCookie = [NSString stringWithFormat:@"%@=%@",@"token",@"測試一下"];
cookieStr = [NSString stringWithFormat:@"%@ %@",cookieStr,addCookie];
[request setValue:cookieStr forHTTPHeaderField:@"Cookie"];
[_webView loadRequest:request];
然後再抓包看看Cookie是不是已經改變了。