Вот мой клиент OkHttp3, печенья и перехватчики объявления:не OkHttp3 отправка печенье
CookieJar cookieJar = new CookieJar() {
private final HashMap<String, List<Cookie>> cookieStore = new HashMap<>();
@Override
public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
//System.out.println("added new cookies: "+cookies);
cookieStore.put(url.host(), cookies);
//System.out.println("list of all cookies: "+cookieStore);
}
@Override
public List<Cookie> loadForRequest(HttpUrl url) {
List<Cookie> cookies = cookieStore.get(url.host());
System.out.println();
return cookies != null ? cookies : new ArrayList<Cookie>();
}
};
HttpLoggingInterceptor logging = new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.HEADERS);
private OkHttpClient sisgradRequest = new OkHttpClient.Builder()
.cookieJar(cookieJar)
.addNetworkInterceptor(new UserAgentInterceptor(userAgent))
.addInterceptor(logging)
.build();
Это находится внутри класса. Множество способов выполнить вызовы методов из этого OkHttpClient называется sisgradRequest, например:
Request fakeUserNavigation = new Request.Builder().
url(protocol + "://" + domain + "/" + "sentinela" + "/").
build();
Response a = sisgradRequest.newCall(fakeUserNavigation).execute();
В информации лесозаготовительной, я вижу это:
16 августа 2016 8:20:22 PM okhttp3.internal. platform.Platform log
INFO: Set-Cookie: JSESSIONID=E793...31C2.sis_sentinela_worker_6; Path=/sentinela/; Secure; HttpOnly
Итак, печенье доставляется этим первым звонком. Затем я сделать еще один звонок, как это:
Request fakeUserNavigation2 = new Request.Builder().
url(protocol + "://" + domain + "/" + "sentinela" + "/" + "login.open.action").
build();
Response b = sisgradRequest.newCall(fakeUserNavigation2).execute();
но запрос GET регистрируется как это:
INFO: --> GET https://.../sentinela/login.open.action http/1.1
Aug 16, 2016 8:20:22 PM okhttp3.internal.platform.Platform log
INFO: --> END GET
Это весь запрос, потому что он имеет END GET. Печенье не отправляется. Все вызовы метода используют один и тот же OkHttp3Client, поэтому куки должны быть разделены между ними. Я пробовал все 3 реализации куков cookie от here, но никто из них не работает. Это в моем коде из последнего ответа.
У меня такая же проблема. Вам удалось решить эту проблему? – Tooroop