2017-01-17 10 views
-1

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

Я использую Дооснащение 2, так что у меня есть вызов и ответ ДООСНАСТКИ в обратном вызове:

@Override public void onResponse(Call<R> call, Response<R> response) { 
    okhttp3.Response raw = response.raw(); 
} 

Как я могу получить оригинальный okhttp3.Request, который был создан моим приложением?

+0

Вздохнуть, почему нижний угол теперь? –

ответ

0

Обратите внимание, что Response.request() - это «запрос на уровне проводника, инициировавший этот HTTP-ответ». Это не обязательно первоначальный запрос.

Ниже будет создавать резервные копии на первый ответ и получить его запрос:

static Request originalRequest(okhttp3.Response response) { 
    while (true) { 
    okhttp3.Response prior = response.priorResponse(); 
    if (prior == null) { 
     break; 
    } 
    response = prior; 
    } 
    return response.request(); 
} 

Однако, обратите внимание, что запрос, который вы создали в своем прикладном уровне может быть воссоздан в добавленной перехватчик, и вы не обязательно знать об этом изменении. Но вышеизложенное будет работать для большинства случаев использования.

 Смежные вопросы

  • Нет связанных вопросов^_^