package com.xiaomai.geek.data.net.client; import android.text.TextUtils; import android.util.Base64; import java.io.IOException; import okhttp3.Interceptor; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by XiaoMai on 2017/4/26. */ public class AuthHttpClient extends BaseOkHttpClient { private String userName; private String password; public AuthHttpClient(String userName, String password) { this.userName = userName; this.password = password; } @Override public OkHttpClient.Builder customize(OkHttpClient.Builder builder) { if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(password)) { builder.addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { // https://developer.github.com/v3/auth/#basic-authentication // https://developer.github.com/v3/oauth/#non-web-application-flow String userCredentials = userName + ":" + password; String basicAuth = "Basic " + new String( Base64.encode(userCredentials.getBytes(), Base64.DEFAULT)); Request original = chain.request(); Request.Builder requestBuilder = original.newBuilder() .header("Authorization", basicAuth.trim()); Request request = requestBuilder.build(); return chain.proceed(request); } }); } return builder; } }