是否可以与UIWebView共享AFNetworking
会话?我使用AFNetworking
登录到远程服务器,但UIWebView不知道AFNetworking
创建的会话?
答案 0 :(得分:1)
尝试使用UIWebView + AFNetworking类别来调用import { HTTP } from 'meteor/http';
const result = HTTP.get('https://my-url.com');
。
http://cocoadocs.org/docsets/AFNetworking/3.1.0/Categories/UIWebView+AFNetworking.html
答案 1 :(得分:1)
实际上,AFNetworking
和UIWebView
共享相同的Cookie存储空间。因此,我们不需要任何特殊技术让UIWebView
“共享”由AFNetworking
初始化的会话,或任何使用NSHTTPCookieStorage
存储cookie的基于本地会话的请求。在我的情况下,UIWebView
没有发现共享会话有用,只是因为AFNetworking
初始化的会话缺少仅在使用浏览器浏览网站时发送的cookie。
以下是我为解决问题所做的工作:
// Open a request to remote server with a User-Agent string set to the request header.
// We'll have browser-specific cookies in NSHTTPCookieStorage
NSString *userAgent = @"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.requestSerializer setValue:userAgent forHTTPHeaderField:@"User-Agent"];
[manager GET:kRemoteServerUrl parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"Done");
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"Failure");
}];
上面的代码将确保我们在NSHTTPCookieStorage中拥有所有特定于浏览器的cookie,因此让UIWebView
共享由本机登录例程初始化的任何会话。