public static List<Header> fromOkHeaders(Headers okHeaders) { List<Header> headers = new ArrayList<>(); if (okHeaders != null) { for (String name : okHeaders.names()) { String value = okHeaders.get(name); headers.add(new Header(name, value)); } } return headers; }
private Response response(DiskLruCache.Snapshot snapshot) throws IOException { String contentType = responseHeaders.get("Content-Type"); Request cacheRequest = new Request.Builder() .url(url) .method(requestMethod, requestBody) .headers(varyHeaders) .build(); BufferedSource source = Okio.buffer(snapshot.getSource(RESPONSE_BODY)); byte[] bodyContent = source.readByteArray(); MediaType mediaType = contentType == null ? null : MediaType.parse(contentType); return new Response.Builder() .request(cacheRequest) .protocol(protocol) .code(code) .message(message) .headers(responseHeaders) .body(new OkHttpUtil.ReusableResponseBody(mediaType, bodyContent)) .handshake(handshake) .build(); }
private static Headers combine(Headers headers, Headers headers1) { boolean flag = false; com.squareup.okhttp.Headers.Builder builder = new com.squareup.okhttp.Headers.Builder(); int k = headers.size(); int j = 0; do { if (j >= k) { break; } String s = headers.name(j); String s1 = headers.value(j); if ((!"Warning".equalsIgnoreCase(s) || !s1.startsWith("1")) && (!OkHeaders.isEndToEnd(s) || headers1.get(s) == null)) { builder.add(s, s1); } j++; } while (true); k = headers1.size(); j = ((flag) ? 1 : 0); do { if (j >= k) { break; } headers = headers1.name(j); if (!"Content-Length".equalsIgnoreCase(headers) && OkHeaders.isEndToEnd(headers)) { builder.add(headers, headers1.value(j)); } j++; } while (true); return builder.build(); }