2016-05-31 11 views
1

AFNetworkingセッションをUIWebViewと共有できますか?私はAFNetworkingを使用してリモートサーバーにログインしましたが、UIWebViewはセッションが作成されることについて全く考えていません。AFNetworkingAFNetworkingとUIWebViewのセッションを共有する

答えて

0

実は、AFNetworkingUIWebViewは同じクッキーストレージを共有しています。したがって、によって初期化されたセッション、またはクッキーを保存するためにNSHTTPCookieStorageを使用するネイティブのセッションベースの要求をUIWebViewが「共有」するような特別な技術は必要ありません。私の状況では、AFNetworkingで初期化されたセッションには、ブラウザでサイトを閲覧するときにだけ送信されたクッキーがなかったため、UIWebViewは共有セッションが見つからないと便利です。

そしてここで私が問題を解決するために何をしたかである:上記のコード

// 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"); 
}]; 

ので、UIWebViewがネイティブログインルーチンで初期設定を任意のセッションを共有しましょう、私たちはNSHTTPCookieStorage内のすべてのブラウザ固有のクッキーを持っていることを確認します。

関連する問題