Galera, eu preciso fazer uma requisição POST e passar email e senha no formato x-www-form-urlencoded - preciso capturar alguns dados do retorno, um deles é o token.
Fiz da forma mais simples possivel para ver funcionando - mas o objeto usuario no final esta retornando todos os dados nulos - alguem saberia dizer onde estou errando, pls?!
public interface UserService {
@FormUrlEncoded
@POST("v1/api/usuarios/login/")
Call<Usuario> recuperarUser(@Field("email") String email, @Field("password") String password);
}
E na activity login:
public class LoginActivity extends AppCompatActivity {
private TextInputEditText editEmail, editPassword;
private TextView txtRodape;
private Retrofit retrofit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//getSupportActionBar().hide(); //esconder actionBar.
editEmail = findViewById(R.id.etxt_email);
editPassword = findViewById(R.id.etxt_pass);
txtRodape = findViewById(R.id.txt_login_rodape);
retrofit = new Retrofit.Builder()
.baseUrl("http://sso.profitmais.com.br/")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
public void logar(View view){
String email = editEmail.getText().toString();
String password = editPassword.getText().toString();
UserService userService = retrofit.create(UserService.class);
Call<Usuario> call = userService.recuperarUser(email, password);
call.enqueue(new Callback<Usuario>() {
@Override
public void onResponse(Call<Usuario> call, Response<Usuario> response) {
if (response.isSuccessful()) {
Usuario usuario = response.body();
txtRodape.setText(usuario.getNome());
Toast.makeText(LoginActivity.this, "Response: ", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<Usuario> call, Throwable t) {
Toast.makeText(LoginActivity.this, "Falha!" + t.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}