Я пытаюсь предварительно загрузить кэш okhttp с данными из конечной точки REST, например, persons/1,2,3
, которая возвращает те же данные, что и person/1
, используя перехватчик. Это работает, но использует cache().put$okhttp(resp)
.
Безопасно ли использовать cache().put$okhttp(resp)
для манипулирования кэшем okhttp, как это сделано ниже?
String json = encoder.writeValueAsString(object);
Request newRequest = new Request.Builder().url(url).build();
ResponseBody body = ResponseBody
.create(MediaType.parse("application/json"), json);
Response resp = new Response.Builder().body(body)
.request(newRequest).code(200).protocol(HTTP_1_1)
.header("content-type", "application/json")
.message("OK").body(body)
.networkResponse(new Response.Builder().code(200)
.request(newRequest).protocol(HTTP_1_1)
.header("content-type", "application/json")
.message("OK").build())
.build();
Sink cacheSink = getOk().cache().put$okhttp(resp).body();
cacheSink.write(resp.body().source().getBuffer(),
json.getBytes().length);
cacheSink.close();