cookie_jar 2.0.0-nullsafety copy "cookie_jar: ^2.0.0-nullsafety" to clipboard
cookie_jar: ^2.0.0-nullsafety copied to clipboard

outdated

A cookie manager for http requests in Dart, by which you can deal with the complex cookie policy and persist cookies easily.

CookieJar #

build statud Pub support

A cookie manager for http requests in Dart, by which you can deal with the complex cookie policy and persist cookies easily.

Add dependency #

dependencies:
  cookie_jar: ^1.0.0

Usage #

A simple usage example:

import 'package:cookie_jar/cookie_jar.dart';
void main() async {
  List<Cookie> cookies = [Cookie("name", "wendux"),Cookie("location", "china")];
  var cj = CookieJar();
  //Save cookies   
  cj.saveFromResponse(Uri.parse("https://www.baidu.com/"), cookies);
  //Get cookies  
  List<Cookie> results = cj.loadForRequest(Uri.parse("https://www.baidu.com/xx"));
  print(results);  
}    
       

Classes #

SerializableCookie #

This class is a wrapper for Cookie class. Because the Cookie class doesn't support Json serialization, for the sake of persistence, we use this class instead of it.

CookieJar #

CookieJar is a default cookie manager which implements the standard cookie policy declared in RFC. CookieJar saves the cookies in RAM, so if the application exit, all cookies will be cleared. A example as follow:

var cj= CookieJar();

PersistCookieJar #

PersistCookieJar is a cookie manager which implements the standard cookie policy declared in RFC. PersistCookieJar persists the cookies in files, so if the application exit, the cookies always exist unless call delete explicitly. A example as follows:

// Cookie files will be saved in "./cookies"
var cj = PersistCookieJar(
    dir:"./cookies",
    ignoreExpires:true, //save/load even cookies that have expired.
);

Note: In Flutter, File system is different from PC, you can use path_provider package to get the path :

// API `getTemporaryDirectory` is from "path_provider" package.
Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;
CookieJar cj=PersistCookieJar(dir:tempPath);

APIs #

void saveFromResponse(Uri uri, List

Save the cookies for specified uri.

List

Load the cookies for specified uri.

delete(Uri uri,[bool withDomainSharedCookie = false] )

Delete cookies for specified uri. This API will delete all cookies for the uri.host, it will ignored the uri.path.

If withDomainSharedCookie is true , will delete the domain-shared cookies.

Note: This API is only available in PersistCookieJar class.

Working with HttpClient #

Using CookieJar or PersistCookieJar manages HttpClient 's request/response cookies is very easy:

var cj=CookieJar();
...
request = await httpClient.openUrl(options.method, uri);
request.cookies.addAll(cj.loadForRequest(uri));
response = await request.close();
cj.saveFromResponse(uri, response.cookies);

Working with dio #

dio is a powerful Http client for Dart, which supports Interceptors, Global configuration, FormData, File downloading, Timeout etc. And dio supports to manage cookies with cookie_jar, the simple example is:

import 'package:dio/dio.dart';
import 'package:dio_cookie_manager/dio_cookie_manager.dart';
import 'package:cookie_jar/cookie_jar.dart';

main() async {
  var dio = Dio();
  var cookieJar=CookieJar();
  dio.interceptors.add(CookieManager(cookieJar));
  await dio.get("https://baidu.com/");
  // Print cookies
  print(cookieJar.loadForRequest(Uri.parse("https://baidu.com/")));
  // second request with the cookie
  await dio.get("https://baidu.com/");
}

More details about dio see : https://github.com/flutterchina/dio .

This open source project authorized by https://flutterchina.club , and the license is MIT.

Features and bugs #

Please file feature requests and bugs at the issue tracker.

80
likes
0
pub points
98%
popularity

Publisher

verified publisherflutterchina.club

A cookie manager for http requests in Dart, by which you can deal with the complex cookie policy and persist cookies easily.

Repository (GitHub)
View/report issues

License

unknown (license)

More

Packages that depend on cookie_jar