レスポンスでsessionIdを返すログインAPIがあり、このセッションIDをヘッダーにsessionIdをとり、以前にログインしたかどうかを返すAPIに対してこのセッションIDを送信する必要がありますが、アンドロイドの偽の値。私はpostmanを使ってそれをテストしました - インターセプタを有効にして - うまくいきました。retrofit 2ヘッダーが機能しません
クッキーは、ここでは、ログに細かい
登場私はログがある
public class CookieInterceptor implements Interceptor {
private static volatile String cookie;
public static void setSessionCookie(String cookies) {
cookie = cookies;
}
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (cookie != null) {
request = request.newBuilder()
.addHeader("Cookie", cookie)
.build();
}
return chain.proceed(request);
}
}
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
final OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addNetworkInterceptor(logging)
.addInterceptor(new CookieInterceptor())
.readTimeout(120, TimeUnit.SECONDS)
.connectTimeout(120, TimeUnit.SECONDS)
.build();
mRetrofit = new Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxErrorHandlingCallAdapterFactory.create())
.build();
をやったことです: - 受信した要求のための
--> GET https://giftdisk.com/my_en/mobileapi/customer/status http/1.1
D/OkHttp: Cookie: frontend=d6652f83347c30f500cd444191b7cefb
D/OkHttp: Host: giftdisk.com
D/OkHttp: Connection: Keep-Alive
D/OkHttp: Accept-Encoding: gzip
D/OkHttp: User-Agent: okhttp/3.3.1
D/OkHttp: --> END GET
送信された要求のために
あなたはCookieManager
経由でネイティブのクッキージャー/政策支援を使用することがありますように10<-- 200 OK https://giftdisk.com/my_en/mobileapi/customer/status (728ms) D/OkHttp: Date: Thu, 09 Feb 2017 16:08:45 GMT D/OkHttp: X-Powered-By: PHP/5.4.45 D/OkHttp: Expires: Thu, 19 Nov 1981 08:52:00 GMT D/OkHttp: Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 D/OkHttp: Pragma: no-cache D/OkHttp: Content-Encoding: gzip D/OkHttp: Vary: Accept-Encoding D/OkHttp: Set-Cookie: frontend=dadcf55472df1475a63a965e8363c914; expires=Thu, 09-Feb-2017 17:08:46 GMT; path=/; domain=giftdisk.com; 02-10 06:13:32.859 31752-32731/ae.cws.giftdisk D/OkHttp: Set-Cookie: frontend_cid=j1JGqUiVmox6GjQ6; expires=Thu, 09-Feb-2017 17:08:46 GMT; path=/; domain=giftdisk.com; secure; httponly D/OkHttp: Keep-Alive: timeout=3, max=30 D/OkHttp: Connection: Keep-Alive D/OkHttp: Transfer-Encoding: chunked D/OkHttp: Content-Type: text/html; charset=UTF-8 D/OkHttp: <-- END HTTP (encoded body omitted)