Java tutorial
/* * Copyright 2015 Ideable Solutions, S.L. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.kwido.fiware.android.sdk; import com.kwido.fiware.android.sdk.utils.Constants; import com.squareup.okhttp.OkHttpClient; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import retrofit.client.OkClient; import retrofit.converter.JacksonConverter; public class ServiceGenerator { // No need to instantiate this class. private ServiceGenerator() { } public static <S> S createService(Class<S> serviceClass, String baseUrl) { return ServiceGenerator.createService(serviceClass, baseUrl, null); } public static <S> S createService(Class<S> serviceClass, String endpoint, final String token) { // set endpoint url and use OkHTTP as HTTP client RestAdapter.Builder builder = new RestAdapter.Builder().setEndpoint(endpoint) .setConverter(new JacksonConverter()) .setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.BASIC) .setClient(new OkClient(new OkHttpClient())); builder.setRequestInterceptor(new RequestInterceptor() { @Override public void intercept(RequestFacade request) { request.addHeader(Constants.HEADER_ACCEPT, "application/json"); if (token != null) { request.addHeader(Constants.HEADER_TOKEN, token); } } }); RestAdapter adapter = builder.build(); return adapter.create(serviceClass); } }