Geen omschrijving

RNFBCookieJar.java 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.RNFetchBlob.Utils;
  2. import com.facebook.react.bridge.Arguments;
  3. import com.facebook.react.bridge.ReadableMap;
  4. import com.facebook.react.bridge.WritableArray;
  5. import com.facebook.react.bridge.WritableMap;
  6. import java.util.ArrayList;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import okhttp3.Cookie;
  10. import okhttp3.CookieJar;
  11. import okhttp3.HttpUrl;
  12. /**
  13. * Created by wkh237on 2016/10/14.
  14. */
  15. public class RNFBCookieJar implements CookieJar {
  16. static final HashMap<String, List<Cookie>> cookieStore = new HashMap<>();
  17. private List<Cookie> cookies;
  18. @Override
  19. public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
  20. cookieStore.put(url.host(), cookies);
  21. }
  22. @Override
  23. public List<Cookie> loadForRequest(HttpUrl url) {
  24. List<Cookie> cookies = cookieStore.get(url.host());
  25. return cookies != null ? cookies : new ArrayList<Cookie>();
  26. }
  27. public static WritableArray getCookies(String host) {
  28. HttpUrl url = HttpUrl.parse(host);
  29. List<Cookie> cookies = null;
  30. if(url != null) {
  31. cookies = cookieStore.get(url.host());
  32. }
  33. WritableArray cookieList = Arguments.createArray();
  34. if(cookies != null) {
  35. for(Cookie c : cookies){
  36. cookieList.pushString(c.toString());
  37. }
  38. return cookieList;
  39. }
  40. return null;
  41. }
  42. }