Теперь у меня проблема с авторизацией Retrofit и API веб-сайта.
Мой код основан на следующем:
Как я могу получить токен с Retrofit2 в Android Studio?
https://github.com/codepath/android_guides/wiki/Consuming-APIs-with-Retrofit#define-the-endpoints
https://github.com/codepath/android_guides/wiki/Leveraging-the-Gson-Library
Вот мой MainActivity.java:
public class MainActivity extends AppCompatActivity {
public static final String BASE_URL = "https://api.some.some/v1/";
SomeAPI userClient;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
userClient = retrofit.create(SomeAPI.class);
login();
}
private void login() {
Auth login = new Auth("123456", "12345678");
Call<User> call = userClient.login(login);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
if (response.isSuccessful()){
Toast.makeText(MainActivity.this, response.body().getToken(), Toast.LENGTH_SHORT).show();
token = response.body().getToken();
}
else {
Toast.makeText(MainActivity.this, "Token is not truth :(", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Toast.makeText(MainActivity.this, "error!", Toast.LENGTH_SHORT).show();
}
});
}
}
Вот мой интерфейс API:
public interface SomeAPI {
@POST("token")
Call<User> login(@Body Auth login);
}
Вот мой Auth.java:
public class Auth {
private String login;
private String password;
public Auth(String login, String password) {
this.login = login;
this.password = password;
}
}
Вот мой пользователь.java:
public class User {
private int id;
private String email;
private String token;
public int getId(){
return id;
}
public void setId(){
this.id = id;
}
public String getEmail(){
return email;
}
public void setEmail(String email){
this.email = email;
}
public String getToken(){return token;}
public void setToken(String token){this.token = token;}
}
Об API веб-сайта на следующих снимках экрана: ![Request](https://i.stack.imgur.com/tzF0b.png)
![Response](https://i.stack.imgur.com/5iUu1.png)
Итак, главный вопрос: что не так в моем коде?Почему я не могу получить токен?