Страницы

Поиск по вопросам

понедельник, 4 февраля 2019 г.

Как узнать время сервера из присланного ответа POST запроса?

Как вытащить время сервера из ответа, который пришел на POST запрос? Для отправки POST запроса с Android используется библиотека OKHTTP.
String post(String...url) throws IOException { FormEncodingBuilder form = new FormEncodingBuilder(); RequestBody formBody =form.build(); Request request = new Request.Builder() .header("Cookie", x) .url(url[0]) .post(formBody) .build(); Response response = client.newCall(request).execute(); return response.body().string(); }


Ответ

В Response есть параметр Date, в котором передается текущее время сервера.
Пример Response Headers
Date: Fri, 13 Nov 2015 23:24:28 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive
Но в вашем методе post() возвращается только body, тогда как Date хранится в headers
Соответственно пример кода для получения даты:
Date post(String...url) throws IOException { FormEncodingBuilder form = new FormEncodingBuilder(); RequestBody formBody =form.build(); Request request = new Request.Builder() .header("Cookie", x) .url(url[0]) .post(formBody) .build(); Response response = client.newCall(request).execute(); //return response.body().string(); //Возвращается только Body. return response.headers().getDate("Date"); //Возвращаем объект Date. }

Комментариев нет:

Отправить комментарий