Dear Friends...
I managed to make an implementation with Retrofit using basic authentication, ie, sending the username and password, and can authenticate to the webservice. However, I can not capture the token that is returned in json. I follow this tutorial https://futurestud.io/tutorials/android-basic-authentication-with-retrofit Below is the code that implemented. ServiceGenerator.java public class ServiceGenerator { public static final String API_BASE_URL = "https://NOME_APP.herokuapp.com/ <https://nome_app.herokuapp.com/>"; private static OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); private static Retrofit.Builder builder = new Retrofit.Builder() .baseUrl(API_BASE_URL) .addConverterFactory(GsonConverterFactory.create()); public static <S> S createService(Class<S> serviceClass){ return createService(serviceClass, null, null ); } public static <S> S createService(Class<S> serviceClass, String name, String password){ if(name != null && password != null){ String credentials = name + ":" + password; final String basic = "Basic " + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); httpClient.addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request original = chain.request(); Request.Builder requestBuilder = original.newBuilder() .header("Authorization", basic) .header("Accept", "application/json") .method(original.method(), original.body()); Request request = requestBuilder.build(); return chain.proceed(request); } }); } OkHttpClient client = httpClient.build(); Retrofit retrofit = builder.client(client).build(); return retrofit.create(serviceClass); } } LoginService.java public interface LoginService { @POST("api/autenticar") Call<Login> basicLogin(); } Login.java public class Login { @SerializedName("name") private String name; @SerializedName("password") private String password; @SerializedName("token") private String token; public Login(String name, String password){ this.name = name; this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } } MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { logarWebService(); } catch (IOException e) { e.printStackTrace(); } . . . private void logarWebService() throws IOException { LoginService loginService = ServiceGenerator.createService(LoginService.class, "appLoginWS", "appSenhaWS"); Call<Login> call = loginService.basicLogin(); call.enqueue(new Callback<Login>() { @Override public void onResponse(Call<Login> call, Response<Login> response) { if(response.isSuccessful()){ Log.d(TAG, "responseOK"); }else{ Log.d(TAG, "responseNULL"); } } @Override public void onFailure(Call<Login> call, Throwable t) { } }); Login login = call.execute().body(); } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/android-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/android-developers/a1c51cfe-a897-4cb3-b2c5-87b19df6597f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

