Пытаюсь реализовать REST клиент для андройда. POST запрос не возвращает json ответ. В метод onResponse даже не заходит во время отладки. ip сервера внутренний, по внешнему ip так же не работает. REST клиент с телефона тоже срабатывает без ошибок. Отладку произвожу на Galaxy S8, разрешения на интернет в манифесте прописаны. Точно такой же код в intelliJ IDEA работает на ура.
MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView tView = findViewById(R.id.tView);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://10.200.2.5:8080")
.addConverterFactory(JacksonConverterFactory.create())
.build();
engineApi engineApi = retrofit.create(engineApi.class);
Creds creds = new Creds("user","user");
Call<Token> siignin = engineApi.signin(creds);
siignin.enqueue(new Callback<Token>() {
public void onResponse(Call<Token> call, Response<Token> response) {
if(response.isSuccessful()) {
Token token = response.body();
tView.append(token.getToken());
}
}
public void onFailure(Call<Token> call, Throwable throwable) {
tView.append("FAILLLLL");
}
});
}
Token.java:
public class Token {
@JsonProperty("token")
private String token;
@JsonProperty("type")
private String type;
public Token(String token, String type){
}
public Token(){
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
Creds.java:
public class Creds {
@JsonProperty("username")
private String username;
@JsonProperty("password")
private String password;
public Creds(){
}
public Creds(String username, String password){
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
engineApi.java
public interface engineApi {
@Headers("Content-Type: application/json")
@POST("/api/auth/signin")
Call<Token> signin(@Body Creds creds);
}
На android 9.0 нужно включить поддержку cleartext. В файле манифеста в секции <application></>
указать android:usesCleartextTraffic="true"
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я написал проект на спринге который должен через JSP открывать страницу, и там выводит информацию из MySQL о студентах(имя, фамилия, фото) когда...
Вопрос по использованию Functionidentity() метода
Есть цикл получения данных из xml файлаОн выполняется в AsyncTask doInBackground