我正在将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的新手。我会错过这些密码吗?