requestBuilder.header("Host", hostHeader(userRequest.url(), false));
.url(route.address().url()) .method("CONNECT", null) .header("Host", Util.hostHeader(route.address().url(), true)) .header("Proxy-Connection", "Keep-Alive") // For HTTP/1.0 proxies like Squid. .header("User-Agent", Version.userAgent())
HttpUrl url) throws IOException { String requestLine = "CONNECT " + Util.hostHeader(url, true) + " HTTP/1.1"; while (true) { Http1Codec tunnelConnection = new Http1Codec(null, null, source, sink);
requestBuilder.header("Host", hostHeader(userRequest.url(), false));
.url(route.address().url()) .method("CONNECT", null) .header("Host", Util.hostHeader(route.address().url(), true)) .header("Proxy-Connection", "Keep-Alive") // For HTTP/1.0 proxies like Squid. .header("User-Agent", Version.userAgent())
HttpUrl url) throws IOException { String requestLine = "CONNECT " + Util.hostHeader(url, true) + " HTTP/1.1"; while (true) { Http1Codec tunnelConnection = new Http1Codec(null, null, source, sink);
/** * Returns a request that creates a TLS tunnel via an HTTP proxy, or null if * no tunnel is necessary. Everything in the tunnel request is sent * unencrypted to the proxy server, so tunnels include only the minimum set of * headers. This avoids sending potentially sensitive data like HTTP cookies * to the proxy unencrypted. */ private Request createTunnelRequest() throws IOException { return new Request.Builder() .url(route.address().url()) .header("Host", Util.hostHeader(route.address().url())) .header("Proxy-Connection", "Keep-Alive") .header("User-Agent", Version.userAgent()) // For HTTP/1.0 proxies like Squid. .build(); }
/** * Returns a request that creates a TLS tunnel via an HTTP proxy, or null if no tunnel is * necessary. Everything in the tunnel request is sent unencrypted to the proxy server, so tunnels * include only the minimum set of headers. This avoids sending potentially sensitive data like * HTTP cookies to the proxy unencrypted. */ private Request createTunnelRequest() throws IOException { return new Request.Builder() .url(route.address().url()) .header("Host", Util.hostHeader(route.address().url())) .header("Proxy-Connection", "Keep-Alive") .header("User-Agent", Version.userAgent()) // For HTTP/1.0 proxies like Squid. .build(); }
/** * Returns a request that creates a TLS tunnel via an HTTP proxy, or null if * no tunnel is necessary. Everything in the tunnel request is sent * unencrypted to the proxy server, so tunnels include only the minimum set of * headers. This avoids sending potentially sensitive data like HTTP cookies * to the proxy unencrypted. */ private Request createTunnelRequest() throws IOException { return new Request.Builder() .url(route.address().url()) .header("Host", Util.hostHeader(route.address().url())) .header("Proxy-Connection", "Keep-Alive") .header("User-Agent", Version.userAgent()) // For HTTP/1.0 proxies like Squid. .build(); }
public static List<Header> http2HeadersList(Request request) { Headers headers = request.headers(); List<Header> result = new ArrayList<>(headers.size() + 4); result.add(new Header(TARGET_METHOD, request.method())); result.add(new Header(TARGET_PATH, RequestLine.requestPath(request.url()))); result.add(new Header(TARGET_AUTHORITY, Util.hostHeader(request.url()))); // Optional. result.add(new Header(TARGET_SCHEME, request.url().scheme())); for (int i = 0, size = headers.size(); i < size; i++) { // header names must be lowercase. ByteString name = ByteString.encodeUtf8(headers.name(i).toLowerCase(Locale.US)); if (!HTTP_2_SKIPPED_REQUEST_HEADERS.contains(name)) { result.add(new Header(name, headers.value(i))); } } return result; }
public static List<Header> http2HeadersList(Request request) { Headers headers = request.headers(); List<Header> result = new ArrayList<>(headers.size() + 4); result.add(new Header(TARGET_METHOD, request.method())); result.add(new Header(TARGET_PATH, RequestLine.requestPath(request.url()))); result.add(new Header(TARGET_AUTHORITY, Util.hostHeader(request.url()))); // Optional. result.add(new Header(TARGET_SCHEME, request.url().scheme())); for (int i = 0, size = headers.size(); i < size; i++) { // header names must be lowercase. ByteString name = ByteString.encodeUtf8(headers.name(i).toLowerCase(Locale.US)); if (!HTTP_2_SKIPPED_REQUEST_HEADERS.contains(name)) { result.add(new Header(name, headers.value(i))); } } return result; }
public static List<Header> http2HeadersList(Request request) { Headers headers = request.headers(); List<Header> result = new ArrayList<>(headers.size() + 4); result.add(new Header(TARGET_METHOD, request.method())); result.add(new Header(TARGET_PATH, RequestLine.requestPath(request.url()))); result.add(new Header(TARGET_AUTHORITY, Util.hostHeader(request.url()))); // Optional. result.add(new Header(TARGET_SCHEME, request.url().scheme())); for (int i = 0, size = headers.size(); i < size; i++) { // header names must be lowercase. ByteString name = ByteString.encodeUtf8(headers.name(i).toLowerCase(Locale.US)); if (!HTTP_2_SKIPPED_REQUEST_HEADERS.contains(name)) { result.add(new Header(name, headers.value(i))); } } return result; }
/** * Populates request 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 Request networkRequest(Request request) throws IOException { Request.Builder result = request.newBuilder(); if (request.header("Host") == null) { result.header("Host", hostHeader(request.url())); } if (request.header("Connection") == null) { result.header("Connection", "Keep-Alive"); } if (request.header("Accept-Encoding") == null) { transparentGzip = true; result.header("Accept-Encoding", "gzip"); } List<Cookie> cookies = client.cookieJar().loadForRequest(request.url()); if (!cookies.isEmpty()) { result.header("Cookie", cookieHeader(cookies)); } if (request.header("User-Agent") == null) { result.header("User-Agent", Version.userAgent()); } return result.build(); }
/** * Returns a request that creates a TLS tunnel via an HTTP proxy. Everything in the tunnel request * is sent unencrypted to the proxy server, so tunnels include only the minimum set of headers. * This avoids sending potentially sensitive data like HTTP cookies to the proxy unencrypted. */ private Request createTunnelRequest() throws IOException { Request request = new Request.Builder() .url(route.address().url()) .header("Host", Util.hostHeader(route.address().url(), true)) .header("Proxy-Connection", "Keep-Alive") // For HTTP/1.0 proxies like Squid. .header("User-Agent", Version.userAgent()) .build(); Request authenticateRequest = route.address().proxyAuthenticator().authenticate(request); if (authenticateRequest == null) { return request; } return authenticateRequest; }
result.add(new Header(TARGET_PATH, RequestLine.requestPath(request.url()))); result.add(new Header(VERSION, "HTTP/1.1")); result.add(new Header(TARGET_HOST, Util.hostHeader(request.url()))); result.add(new Header(TARGET_SCHEME, request.url().scheme()));
result.add(new Header(TARGET_PATH, RequestLine.requestPath(request.url()))); result.add(new Header(VERSION, "HTTP/1.1")); result.add(new Header(TARGET_HOST, Util.hostHeader(request.url()))); result.add(new Header(TARGET_SCHEME, request.url().scheme()));
result.add(new Header(TARGET_PATH, RequestLine.requestPath(request.url()))); result.add(new Header(VERSION, "HTTP/1.1")); result.add(new Header(TARGET_HOST, Util.hostHeader(request.url()))); result.add(new Header(TARGET_SCHEME, request.url().scheme()));
result.header("Host", hostHeader(request.url()));
result.header("Host", hostHeader(request.url()));
.url(route.address().url()) .method("CONNECT", null) .header("Host", Util.hostHeader(route.address().url(), true)) .header("Proxy-Connection", "Keep-Alive") // For HTTP/1.0 proxies like Squid. .header("User-Agent", Version.userAgent())