如何在React Native(0.55.4)本机Java端okhttp客户端之间共享cookiejar?

时间:2018-06-29 14:11:26

标签: android react-native okhttp3

我正在将React Native集成到我的原生Android Apps中。我的应用程序类中有一个全局的okhttp3客户端,并且我正在使用franmontiel's PersistentCookieJar作为cookie jar。

如本issues和本answer所述,我像这样构建okhttp客户端:

public class MyApplication extends Application implements ReactApplication{

public static OkHttpClient okHttpClient;
public static ClearableCookieJar cookieJar;
public static ReactCookieJarContainer rnCookieJar;

    public void onCreate() {
        super.onCreate();
        cookieJar = new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(getApplicationContext()));
        rnCookieJar = new ReactCookieJarContainer();
        rnCookieJar.setCookieJar(cookieJar);
        okHttpClient = new OkHttpClient.Builder().cookieJar(rnCookieJar).build();
        //OkHttpClientProvider.replaceOkHttpClient(okHttpClient);
        OkHttpClientProvider.setOkHttpClientFactory(new OKHttpOv());
    }

    public class OKHttpOv implements OkHttpClientFactory {

        @Override
        public OkHttpClient createNewNetworkModuleClient() {
            return okHttpClient;
        }
    }
}

我使用此客户端在应用程序中执行登录和其他网络操作。它可以在本机Java端与Cookie配合使用。但是当我在React Native js端使用fetch函数时,似乎不使用cookie,如下所示。

 fetch(url, {
        method: 'POST',
        headers: {'Accept': 'application/json', 'Content-Type': 'application/json'},
        body: JSON.stringify(body)
    }).then((response) => response.json()).then((responseJson) => {
        return responseJson;
    }).catch((error) => {
        console.error(error);
    });

我是js和React Native的新手。我会错过这些密码吗?

0 个答案:

没有答案