Android Retrofit POST请求加公共参数

最近刚开始接触Retrofit,碰到一个问题:
服务器要求所有POST方式接口都带上TOKEN等字段,如果每个接口都单独写明显不符合程序员的气质,那么问题来了:Retrofit里如何在请求的时候统一给请求加上这些公共的参数?
我猜想应该是在拦截器里,但试了一下,POST方式不知道怎么加,求大神指导。

自己定义一个interceptor,在里面处理,比如

 public class ParamsInterceptor implements Interceptor {
    private static final String TAG = "request params";
    private Context context;

    @Inject
    public ParamsInterceptor(Context context) {
        this.context = context;
    }

    @Override
    public Response intercept(Chain chain) throws IOException {

        Request orgRequest = chain.request();


        RequestBody body = orgRequest.body();
        //收集请求参数,方便调试
        StringBuilder paramsBuilder = new StringBuilder();

        if (body != null) {

            RequestBody newBody = null;

            if (body instanceof FormBody) {
                newBody = addParamsToFormBody((FormBody) body, paramsBuilder);
            } else if (body instanceof MultipartBody) {
                newBody = addParamsToMultipartBody((MultipartBody) body, paramsBuilder);
            }


            if (null != newBody) {
                //打印参数
                LogUtil.i(TAG, paramsBuilder.toString());

                Request newRequest = orgRequest.newBuilder()
                        .url(orgRequest.url())
                        .method(orgRequest.method(), newBody)
                        .build();

                return chain.proceed(newRequest);
            }


        }

        return chain.proceed(orgRequest);

    }

    /**
     * 为MultipartBody类型请求体添加参数
     *
     * @param body
     * @param paramsBuilder
     * @return
     */
    private MultipartBody addParamsToMultipartBody(MultipartBody body, StringBuilder paramsBuilder) {
        MultipartBody.Builder builder = new MultipartBody.Builder();
        builder.setType(MultipartBody.FORM);

        //添加appcode
        String appcode = context.getString(R
                .string.appkey);
        builder.addFormDataPart("appcode", appcode);


        paramsBuilder.append("appcode=" + appcode);

        //添加id,city参数
        User user = BaseRepository.getUser();
        if (user != null) {
            String id = user.id() + "";
            UserType userType = user.userType();

            if (userType == UserType.BEAUTICIAN) {
                builder.addFormDataPart("beautician_id", id);

                paramsBuilder.append("&");
                paramsBuilder.append("beautician_id=" + id);
            } else  if (userType == UserType.BEAUTYSHOP){
                builder.addFormDataPart("bp_id", id);

                paramsBuilder.append("&");
                paramsBuilder.append("bp_id=" + id);
            }

            //城市
            String city = user.city();

            builder.addFormDataPart("city", city);

            paramsBuilder.append("&");
            paramsBuilder.append("city=" + city);
        }

        //添加原请求体
        for (int i = 0; i < body.size(); i++) {
            builder.addPart(body.part(i));
        }

        return builder.build();
    }

    /**
     * 为FormBody类型请求体添加参数
     *
     * @param body
     * @param paramsBuilder
     * @return
     */
    private FormBody addParamsToFormBody(FormBody body, StringBuilder paramsBuilder) {
        FormBody.Builder builder = new FormBody.Builder();

        //添加appcode
        String appcode = context.getString(R
                .string.appkey);
        builder.add("appcode", appcode);

        paramsBuilder.append("appcode=" + appcode);

        //添加id,city参数
        User user = BaseRepository.getUser();
        if (user != null) {
            String id = user.id() + "";
            UserType userType = user.userType();

            if (userType == UserType.BEAUTICIAN) {
                builder.add("beautician_id", id);

                paramsBuilder.append("&");
                paramsBuilder.append("beautician_id=" + id);
            } else  if (userType == UserType.BEAUTYSHOP){
                builder.add("bp_id", id);

                paramsBuilder.append("&");
                paramsBuilder.append("bp_id=" + id);
            }

            //城市
            String city = user.city();

            builder.add("city", city);

            paramsBuilder.append("&");
            paramsBuilder.append("city=" + city);
        }

        //添加原请求体
        for (int i = 0; i < body.size(); i++) {
            builder.addEncoded(body.encodedName(i), body.encodedValue(i));
            paramsBuilder.append("&");
            paramsBuilder.append(body.name(i));
            paramsBuilder.append("=");
            paramsBuilder.append(body.value(i));
        }

        return builder.build();
    }
}