Как получить оригинальный адрес от дооснащения? - PullRequest
0 голосов
/ 25 января 2019

У меня есть ответ от запроса на модернизацию на ссылку "/address/{id}/data" на моем сервере, где id - параметр запроса. Когда я получаю ответ от модернизации, у меня есть ссылка с уже вставленным параметром "/address/001/data". Как получить оригинальную ссылку без запроса в Retrofit (/address/{id}/data)?

1 Ответ

0 голосов
/ 25 января 2019

Что вы можете сделать

Возможно, у вас есть другие варианты, но вы можете начать с этого

Вариант 1

Вы можете получить прямой доступ к URL-адресу из ответа, полученного при модернизации, используя

response.raw().request().url()

Возвращает http-адрес запроса, например. распечатывает

okhttp/example-request D: //http://example.com/address/001/data

Вариант 2

Другой способ - добавить перехватчик сетевых запросов с помощью okhttp-logging-inceptor .

val logging = HttpLoggingInterceptor()
logging.level = Level.BASIC
val client = OkHttpClient.Builder()
    .addInterceptor(logging)
    .build()

Вариант 2 намного лучше, чем вариант 1, поскольку он будет перехватывать все сетевые запросы в вашем приложении, не выполняя при этом слишком много работы над каждым обратным вызовом запроса. Кроме того, при желании вы можете настроить уровень ведения журнала и добавлять его только при указанном условии.

Например. Журнал по умолчанию в режиме DEBUG

val logging = HttpLoggingInterceptor(HttpLoggingInterceptor.Logger.DEFAULT)
val client = OkHttpClient.Builder()
if (BuildConfig.DEBUG) {
    logging.level = HttpLoggingInterceptor.Level.BODY // setting the level
    client.addInterceptor(okHttpLoggingInterceptor) // adding interceptor
}

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...