private Request networkRequest(Request request) { com.squareup.okhttp.Request.Builder builder = request.newBuilder(); if (request.header("Host") == null) { builder.header("Host", Util.hostHeader(request.httpUrl())); } if ((connection == null || connection.getProtocol() != Protocol.HTTP_1_0) && request.header("Connection") == null) { builder.header("Connection", "Keep-Alive"); } if (request.header("Accept-Encoding") == null) { transparentGzip = true; builder.header("Accept-Encoding", "gzip"); } CookieHandler cookiehandler = client.getCookieHandler(); if (cookiehandler != null) { java.util.Map map = OkHeaders.toMultimap(builder.build().headers(), null); OkHeaders.addCookies(builder, cookiehandler.get(request.uri(), map)); } if (request.header("User-Agent") == null) { builder.header("User-Agent", Version.userAgent()); } return builder.build(); }
@Override public final Map<String, List<String>> getHeaderFields() { try { Response response = getResponse().getResponse(); return OkHeaders.toMultimap(response.headers(), response.statusLine()); } catch (IOException e) { return Collections.emptyMap(); } }
@Override public final Map<String, List<String>> getRequestProperties() { if (connected) { throw new IllegalStateException( "Cannot access request header fields after connection is set"); } // For the request line property assigned to the null key, just use no proxy and HTTP 1.1. Request request = new Request.Builder().url(getURL()).method(method, null).build(); String requestLine = RequestLine.get(request, null, 1); return OkHeaders.toMultimap(requestHeaders.build(), requestLine); }