Gewusst wie: abrufen von cookie aus der Antwort Nachrüstung, okhttp?
Ich versuche, um Cookies abzurufen Werten aus der API-Antwort für die Pflege der backend-session durch die Einstellung der cookie-Wert auf neue API-Aufruf im Fall, dass die APP geschlossen ist :
Die Reaktion auf die API-Aufruf aus Postbote RestClient:
RetrofitClient.java
public static Retrofit getClient() {
if (checkClient()) {
return getRetrofit();
}
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
CookieHandler cookieHandler = new CookieManager();
okhttp3.OkHttpClient client = new okhttp3.OkHttpClient.Builder().addNetworkInterceptor(interceptor)
.cookieJar(new JavaNetCookieJar(cookieHandler))
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.build();
Gson gson = new GsonBuilder()
.setLenient()
.create();
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(client)
.build();
return retrofit;
}
API-Aufruf
private void userLogin(String username, String password) {
Retrofit retrofit = RetrofitClient.getClient();
final LoginServices loginServices = retrofit.create(LoginServices.class);
Call<LoginResponse> call = loginServices.userLogin(username, password);
call.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
Log.d("Response code:", "===========" + response.code());
Log.d("==Cookie==1===", "==="+response.raw().request().headers().get("Cookie"));
Log.d("==Cookie==2==", "==="+response.headers().get("Cookie"));
Log.d("==Content-Type====", "==="+response.headers().get("Content-Type"));
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
Log.e("TAG", "=======onFailure: " + t.toString());
t.printStackTrace();
//Log error here since request failed
}
});
}
Logcat:
Response code:: ===========200
==Cookie==1===: ===null
==Cookie==1===: ===null
==Content-Type====: ===application/json
Ich habe auch versucht, verschiedene andere Methoden, Sie hat nicht für mich gearbeitet. Bitte Um Hilfe!!
Antwort.raw - ().Header().get("Cookie") versuchen, diese
schon versucht, funktioniert nicht @ManthanPatel
finden Sie auf dieser gist.
funktioniert nicht 🙁
schon versucht, funktioniert nicht @ManthanPatel
finden Sie auf dieser gist.
funktioniert nicht 🙁
InformationsquelleAutor Anurag Dhunna | 2018-01-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Header-name "Set-Cookie", nicht "Cookie" und durch die Art und Weise
Den Ansatz, den Sie nehmen Es nicht richtig. Wenn Sie möchten, speichern Sie die Cookies, Sie können erstellen einen interceptor und speichern die Cookies, und verwenden Sie später, wenn Sie verwenden möchten.
Hier, was Sie tun müssen, erstellen Sie Zuerst ein interceptor
Hier sind wir speichern alle cookies, die Sie erhalten in der Antwort.
Haben Sie jetzt die cookies, es ist Zeit, es zu benutzen.
Wo immer Sie wollen, es zu benutzen, nur um die cookies, die Sie zuvor gespeichert
Viel Glück ?
InformationsquelleAutor Rajan Maurya
Versuchen Antwort.Header().get("Set-Cookie"))
das ist so nicht ganz richtig. um alle cookies mit der Antwort.Header().Werte("Set-Cookie")) gibt eine Liste<String> und sollten Sie alle Ihre cookies
InformationsquelleAutor yu wang