Гость
Map
Форумы / Разработка под мобильные платформы [игнор отключен] [закрыт для гостей] / Retrofit2 + OkHttpClient + RESTFul / 3 сообщений из 3, страница 1 из 1
04.07.2019, 17:23
    #39833974
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Retrofit2 + OkHttpClient + RESTFul
Привет!

Решил попробовать себя в мобильной разработке.

Подскажите плиз.

Есть простой REST-сервис с которым должно работать андройд-приложение.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
@Path("idea")
public class IdeaController {

    @Context
    private HttpServletRequest request;
    
    @GET
    @Path("/test")
    @Produces(MediaType.APPLICATION_JSON)
    public String msg() {        
        HttpSession session = request.getSession();
        System.out.println(session.getId());
        return "{\"MSG\": \"Putin uhodi!!!\"}";
    }
}



Если я с десктопа, через например хром обращусь к сервису то сессия не меняется, т.е. много раз перейду по урл, но ИД сессии тот же. Это я вижу в лога на томкате. И это правильно и понятно.

Но если с андройда:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
MyNetworkService.getInstance().getJSONApi().test().enqueue(new Callback<Idea>() {
	@Override
	public void onResponse(Call<Idea> call, Response<Idea> response) {

	}

	@Override
	public void onFailure(Call<Idea> call, Throwable t) {
		onBackPressed();
		t.printStackTrace();
	}
});



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class Idea {
    @SerializedName("MSG")
    @Expose
    private String msg;
	
	 public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}



В этом случае ид сессии всегда новый при каждом запросе.
Т.е. получается каждый раз поднимается новая сессия.
При таком раскладе я не смогу например хранить токен для клиента.

Что мне делать? )
...
Рейтинг: 0 / 0
04.07.2019, 17:27
    #39833977
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Retrofit2 + OkHttpClient + RESTFul
Чуть не забыл:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
public class MyNetworkService {

    private static MyNetworkService mInstance;
    private static final String BASE_URL = "http://localhost:8080/REST/";
    private Retrofit mRetrofit;

    private MyNetworkService() {
        OkHttpClient.Builder client = new OkHttpClient.Builder();        
        client.connectTimeout(60, TimeUnit.SECONDS);
        client.readTimeout(60, TimeUnit.SECONDS);
        client.writeTimeout(60, TimeUnit.SECONDS);

        mRetrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .client(client.build())
                .build();
    }

    public static MyNetworkService getInstance() {
        if (mInstance == null) {
            mInstance = new MyNetworkService();
        }
        return mInstance;
    }

    public MyJSONApi getJSONApi() {
        return mRetrofit.create(MyJSONApi.class);
    }
}



И

Код: java
1.
2.
3.
4.
public interface MyJSONApi {
    @GET("idea/test")
    public Call<Idea> test();
}
...
Рейтинг: 0 / 0
05.07.2019, 15:24
    #39834401
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Retrofit2 + OkHttpClient + RESTFul
Отбой! Узнал что в REST отсутствуют так таковы сеансы
...
Рейтинг: 0 / 0
Форумы / Разработка под мобильные платформы [игнор отключен] [закрыт для гостей] / Retrofit2 + OkHttpClient + RESTFul / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]