Dzień dobry, chcę wykonywać zapytanie za zapytaniem w momencie, kiedy zapytanie się wykona. Wykonuję to w ten sposób:
OnContinueUserPing.java
public interface OnContinueUserPing {
void onContinue();
}
GameActivity.java
public class GameActivity extends AppCompatActivity implements OnContinueUserPing {
(...)
@Override
public void onStart() {
restModel.setUserPing(login, this);
}
@Override
public void onContinue() {
restModel.setUserPing(login, this);
}
}
RestModel.java
public void setUserPing(String login, OnContinueUserPing onContinueUserPing) {
Call<String> result = Api.getClient().setUserPing(login);
result.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
Log.e("setUserPingResponse", "a");
onContinueUserPing.onContinue();
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.e("setUserPingError", t.toString());
call.clone().enqueue(this);
}
});
}
Api.java
public class Api {
public static ApiInterface getClient() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.connectTimeout(100, TimeUnit.SECONDS)
.readTimeout(100,TimeUnit.SECONDS).build();
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder().client(client)
.baseUrl("https://jawegiel-web.herokuapp.com/")
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
return retrofit.create(ApiInterface.class);
}
}
I działa ten kod przez pierwsze kilka minut. Ale później na zmianę dział i nie działa, z błędem: Failed to connect to jawegiel-web.herokuapp.com/18.208.60.216:443, gdzie ten dziwny adres IP zmienia się co chwila. Dziwny bo powiedzcie skąd on się tam bierze skoro nigdzie go nie definiuje w baseUrl. Jak więc naprawić ten błąd failed to connect? Pozdrawiam.