与前端交互的时候难免会遇到 cookies 方面的处理操作;
如下便是针对 cookies 的一些简单的操作,具体 code 如下:
// 查询 cookies
NSArray *cookieArr = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:urlLink]];
for (NSHTTPCookie *cookie in cookieArr) {
NSLog(@"cookie -> %@", cookie);
// 添加
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
// web 注入
[javaScript appendString:[NSString stringWithFormat:@"document.cookie = '%@=%@';", cookie.name, cookie.value]];
// 删除
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
/**
获取 cookies
@param url 接口地址
@return 结果集
*/
+ (NSArray *)YHGetCookiesWithURL:(NSString *)url {
NSArray *cookiesArr = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:url]];
if (cookiesArr != nil) {
for (NSHTTPCookie *cookie in cookiesArr) {
NSLog(@"%@", cookie);
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
}
return cookiesArr;
}
/**
移除 cookies
@param url 接口地址
*/
+ (void)YHRemoveCookiesWithURL:(NSString *)url {
NSArray *cookiesArr = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:url]];
if (cookiesArr != nil) {
for (NSHTTPCookie *cookie in cookiesArr) {
NSLog(@"%@", cookie);
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
}
}
注:经测试默认发起 http 请求的时候,cookies 默认会注入,无需再次手动注入;但通过模拟器此方法是不可行的,建议使用真机环境下进行调试。
以上便是此次分享的内容,希望对大家有所帮助!
网友评论