2017-02-09 11 views
0

レスポンスで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) 
    

答えて

0

ログの2番目の部分は、サーバーが実際に応答したもので、送信したもの(最初のログ)とはまったく関係がありません。

あなたは何を期待していますか?

関連する問題