Я подключаюсь к restful api с помощью retrofit2.
Когда я пытаюсь выполнить код в консоли эмулятора, он работает нормально и подключается к моему веб-API.
Но когда я конвертирую это в режим релиза apk и установить его на свой мобильный телефон, тогда код не работает.
Знаете ли вы, если это нормальное поведение, и когда я загружаю в Google PlayStore, он будет работать нормально?
public void login(String email, String password)
{
//search at web api
final User[] user = {new User()};
APIInterface apiInterface;
apiInterface = APIClient.getClient("http://url.com").create(APIInterface.class);
Call<User> call1 = apiInterface.UserLogin(email, password);
call1.enqueue(new Callback<User>()
{
@Override
public void onResponse(Call<User> call, Response<User> response) {
if (response.isSuccessful()) {
if (response.body().Id > 0)
{
user[0].Id = response.body().Id;
user[0].email = email;
user[0].tokenuser = response.body().tokenuser;
user[0].tokensession = response.body().tokensession;
//correct credentials
SaveOnPreferences(email, password);
Intent intent = new Intent(LoginForm.this, Dashboard.class);
startActivity(intent);
finish();
}
else
{
//wrong password
Toast.makeText(getApplicationContext(), R.string.IncorrectCredentials, Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onFailure(Call<User> call, Throwable t)
{
Toast.makeText(getApplicationContext(), "public void onFailure: " + user[0].Id, Toast.LENGTH_SHORT).show();
call.cancel();
}
});
}
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.converter.gson.GsonConverterFactory;
class APIClient {
private static Retrofit retrofit = null;
static Retrofit getClient(String url) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
//interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
retrofit = new Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
return retrofit;
}
}
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
public interface APIInterface {
@POST("/miracle/user/login")
@FormUrlEncoded
Call<User> UserLogin(@Field("email") String Email, @Field("password") String Password);
}
import com.google.gson.annotations.SerializedName;
public class User
{
@SerializedName("Id")
public int Id;
@SerializedName("Fullname")
public String fullname;
@SerializedName("Email")
public String email;
@SerializedName("Password")
public String password;
@SerializedName("ValidEmail")
public boolean validemail;
@SerializedName("EnableNotification")
public boolean enablenotification;
@SerializedName("TokenUser")
public String tokenuser;
@SerializedName("TokenSession")
public String tokensession;
public User(){
}
...
}
compileSdkVersion 28
defaultConfig {
applicationId "com.xxx.zzz"
minSdkVersion 24
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Мобильным телефоном, на котором я устанавливаю apk, является Huawei P30.
Любая помощь будет очень признательна.