Я создал операцию входа в систему, когда пользователь вводит свое имя пользователя и пароль, а затем нажимает кнопку входа. С сервера, если вход выполнен успешно, то я проверяю все данные с сервера. За исключением оставшегося идентификатора сеанса, все данные поступают с сервера. Но идентификатор сеанса я получаю нулевым
RetrofitInstance. java:
public class RetrofitInstance {
private static Retrofit retrofit;
private static final String BASE_URL = "XXXXXXXXXXXXXXXXxx";
/**
* Create an instance of Retrofit object
* */
public static Retrofit getRetrofitInstance() {
final HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor .setLevel(HttpLoggingInterceptor.Level.BODY);
CookieHandler cookieHandler = new CookieManager();
OkHttpClient client = new OkHttpClient.Builder().addNetworkInterceptor(interceptor )
.cookieJar(new JavaNetCookieJar(cookieHandler))
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.build();
if (retrofit == null) {
retrofit = new retrofit2.Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
}
return retrofit;
}
}
LoginActivity. java:
Call<Login> call1 = service.GetLoginList(operation,username,generatedKey);
/**Log the URL called*/
Log.wtf("URL Called", call1.request().url() + "");
call1.enqueue(new Callback<Login>() {
@Override
public void onResponse(Call<Login> call1, Response<Login> response) {
if(response.isSuccessful() ) {
Login login=response.body();
String success=login.getSuccess().toString();
if(success.equals("true")){
String result= login.getResult().toString();
Log.i("result", "result" + result);
String head =response.headers().get("Set-Cookie");
Log.i("head", "head" + head);
String sessionId=login.getResult().getSessionId();
Log.i("sessionId", "sessionId" + sessionId);
String userId=login.getResult().getUserId();
Log.i("userId", "userId" + userId);
String version=login.getResult().getVersion();
Log.i("version", "version" + version);
String vtigerVersion=login.getResult().getVtigerVersion();
Log.i("vtigerVersion", "vtigerVersion" + vtigerVersion);
if(username.equals("admin")&& pass.equals("Password!1")) {
Toast.makeText(getApplicationContext(),"Login Successfully",Toast.LENGTH_LONG).show();
Intent i = new Intent(LoginActivity.this, MainActivity.class);
startActivity(i);
finish();
}else {
Toast.makeText(getApplicationContext(),"Invalid Username and Password",Toast.LENGTH_LONG).show();
}
}
else {
Toast.makeText(getApplicationContext(),"Invalid Username and Password",Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onFailure(Call<Login> call1, Throwable t) {
Log.d("error",t.getMessage());
Toast.makeText(LoginActivity.this, "Something went wrong...Error message: " + t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
Логин. java:
public class Login {
@SerializedName("success")
private String success;
public String getSuccess() {
return success;
}
public void setSuccess(String success) {
this.success = success;
}
public GetLoginList getResult() {
return result;
}
public void setResult(GetLoginList result) {
this.result = result;
}
@SerializedName("result")
private GetLoginList result;
}
JSON Ответ:
sessionId: sessionIdnull
userId: userId19x1
version: version0.22
vtigerVersion: vtigerVersion7.1.0