private String requestString() { URL url = policy.getURL(); if (includeAuthorityInRequestLine()) { return url.toString(); } else { return requestPath(url); } }
/** * @param requestHeaders the client's supplied request headers. This class creates a private copy * that it can mutate. * @param connection the connection used for an intermediate response immediately prior to this * request/response pair, such as a same-host redirect. This engine assumes ownership of the * connection and must release it when it is unneeded. */ public HttpEngine( OkHttpClient client, Policy policy, String method, RawHeaders requestHeaders, Connection connection, RetryableOutputStream requestBodyOut) throws IOException { this.client = client; this.policy = policy; this.method = method; this.connection = connection; this.requestBodyOut = requestBodyOut; try { uri = Platform.get().toUriLenient(policy.getURL()); } catch (URISyntaxException e) { throw new IOException(e.getMessage()); } this.requestHeaders = new RequestHeaders(uri, new RawHeaders(requestHeaders)); }
/** * Populates requestHeaders with defaults and cookies. * * <p>This client doesn't specify a default {@code Accept} header because it doesn't know what * content types the application is interested in. */ private void prepareRawRequestHeaders() throws IOException { requestHeaders.getHeaders().setRequestLine(getRequestLine()); if (requestHeaders.getUserAgent() == null) { requestHeaders.setUserAgent(getDefaultUserAgent()); } if (requestHeaders.getHost() == null) { requestHeaders.setHost(getOriginAddress(policy.getURL())); } if ((connection == null || connection.getHttpMinorVersion() != 0) && requestHeaders.getConnection() == null) { requestHeaders.setConnection("Keep-Alive"); } if (requestHeaders.getAcceptEncoding() == null) { transparentGzip = true; requestHeaders.setAcceptEncoding("gzip"); } if (hasRequestBody() && requestHeaders.getContentType() == null) { requestHeaders.setContentType("application/x-www-form-urlencoded"); } long ifModifiedSince = policy.getIfModifiedSince(); if (ifModifiedSince != 0) { requestHeaders.setIfModifiedSince(new Date(ifModifiedSince)); } CookieHandler cookieHandler = client.getCookieHandler(); if (cookieHandler != null) { requestHeaders.addCookies( cookieHandler.get(uri, requestHeaders.getHeaders().toMultimap(false))); } }