List of usage examples for com.squareup.okhttp Request newBuilder
public Builder newBuilder()
From source file:com.mamaspapas.api.helper.Oauth1SigningInterceptor.java
License:Apache License
public Request signRequest(Request request) throws IOException { byte[] nonce = new byte[32]; random.nextBytes(nonce);/* w ww .j a v a 2 s. c o m*/ String oauthNonce = ByteString.of(nonce).base64().replaceAll("\\W", ""); String oauthTimestamp = String.valueOf(clock.millis()); String consumerKeyValue = ESCAPER.escape(consumerKey); String accessTokenValue = ESCAPER.escape(accessToken); SortedMap<String, String> parameters = new TreeMap<>(); parameters.put(OAUTH_CONSUMER_KEY, consumerKeyValue); parameters.put(OAUTH_ACCESS_TOKEN, accessTokenValue); parameters.put(OAUTH_NONCE, oauthNonce); parameters.put(OAUTH_TIMESTAMP, oauthTimestamp); parameters.put(OAUTH_SIGNATURE_METHOD, OAUTH_SIGNATURE_METHOD_VALUE); parameters.put(OAUTH_VERSION, OAUTH_VERSION_VALUE); HttpUrl url = request.httpUrl(); for (int i = 0; i < url.querySize(); i++) { parameters.put(ESCAPER.escape(url.queryParameterName(i)), ESCAPER.escape(url.queryParameterValue(i))); } // RequestBody requestBody = request.body(); // Buffer body = new Buffer(); // requestBody.writeTo(body); // while (!body.exhausted()) { // long keyEnd = body.indexOf((byte) '='); // if (keyEnd == -1) throw new IllegalStateException("Key with no value: " + body.readUtf8()); // String key = body.readUtf8(keyEnd); // body.skip(1); // Equals. // // long valueEnd = body.indexOf((byte) '&'); // String value = valueEnd == -1 ? body.readUtf8() : body.readUtf8(valueEnd); // if (valueEnd != -1) body.skip(1); // Ampersand. // // parameters.put(key, value); // } Buffer base = new Buffer(); String method = request.method(); base.writeUtf8(method); base.writeByte('&'); base.writeUtf8(ESCAPER.escape(request.httpUrl().newBuilder().query(null).build().toString())); base.writeByte('&'); boolean first = true; for (Map.Entry<String, String> entry : parameters.entrySet()) { if (!first) base.writeUtf8(ESCAPER.escape("&")); first = false; base.writeUtf8(ESCAPER.escape(entry.getKey())); base.writeUtf8(ESCAPER.escape("=")); base.writeUtf8(ESCAPER.escape(entry.getValue())); } String signingKey = ESCAPER.escape(consumerSecret) + "&" + ESCAPER.escape(accessSecret); SecretKeySpec keySpec = new SecretKeySpec(signingKey.getBytes(), "HmacSHA1"); Mac mac; try { mac = Mac.getInstance("HmacSHA1"); mac.init(keySpec); } catch (NoSuchAlgorithmException | InvalidKeyException e) { throw new IllegalStateException(e); } byte[] result = mac.doFinal(base.readByteArray()); String signature = ByteString.of(result).base64(); String authorization = "OAuth " + OAUTH_CONSUMER_KEY + "=\"" + consumerKeyValue + "\", " + OAUTH_NONCE + "=\"" + oauthNonce + "\", " + OAUTH_SIGNATURE + "=\"" + ESCAPER.escape(signature) + "\", " + OAUTH_SIGNATURE_METHOD + "=\"" + OAUTH_SIGNATURE_METHOD_VALUE + "\", " + OAUTH_TIMESTAMP + "=\"" + oauthTimestamp + "\", " + OAUTH_ACCESS_TOKEN + "=\"" + accessTokenValue + "\", " + OAUTH_VERSION + "=\"" + OAUTH_VERSION_VALUE + "\""; return request.newBuilder().addHeader("Authorization", authorization).build(); }
From source file:com.maxleapmobile.gitmaster.api.ApiManager.java
License:Open Source License
private ApiManager() { mContext = GithubApplication.getInstance(); OkHttpClient okHttpClient = new OkHttpClient(); okHttpClient.setReadTimeout(60, TimeUnit.SECONDS); okHttpClient.setConnectTimeout(60, TimeUnit.SECONDS); okHttpClient.interceptors().add(new Interceptor() { @Override/* www.j av a2s . c o m*/ public Response intercept(Chain chain) throws IOException { mAccessToken = PreferenceUtil.getString(mContext, Const.ACCESS_TOKEN_KEY, null); HttpUrl url; if (mAccessToken != null) { url = chain.request().httpUrl().newBuilder().addQueryParameter("access_token", mAccessToken) .build(); } else { url = chain.request().httpUrl(); } Request request = chain.request(); Request newRequest; newRequest = request.newBuilder().url(url).addHeader("User-Agent", USER_AGENT) .addHeader("Accept", ACCEPT).build(); return chain.proceed(newRequest); } }); mRetrofit = new Retrofit.Builder().baseUrl(API_URL).client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()).build(); mGithubApi = mRetrofit.create(GithubApi.class); }
From source file:com.rowland.movies.rest.interceptors.SessionRequestInterceptor.java
License:Apache License
@Override public Response intercept(Chain chain) throws IOException { // Get a Request object Request request = chain.request(); // Add headers to the Request object request = request.newBuilder().addHeader("User-Agent", BuildConfig.APPLICATION_ID) .addHeader("Version", BuildConfig.VERSION_NAME).addHeader("Flavour", BuildConfig.FLAVOR).build(); Response response = chain.proceed(request); // Return response return response; }
From source file:com.sam_chordas.android.stockhawk.app.retofit.RestClientPublic.java
License:Apache License
private OkHttpClient getClient() { OkHttpClient client = new OkHttpClient(); HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); client.interceptors().add(interceptor); client.networkInterceptors().add(new Interceptor() { @Override//w ww . j a v a 2 s. co m public Response intercept(Chain chain) throws IOException { Request request = chain.request(); HttpUrl url = request.httpUrl().newBuilder() .addQueryParameter(App.getGlobalContext().getString(R.string.url_query_format), App.getGlobalContext().getString(R.string.url_query_json)) .addQueryParameter(App.getGlobalContext().getString(R.string.url_query_diagnostics), App.getGlobalContext().getString(R.string.url_query_diagnostics_value)) .addQueryParameter(App.getGlobalContext().getString(R.string.url_query_evn), App.getGlobalContext().getString(R.string.url_query_evn_value)) .build(); request = request.newBuilder().url(url).build(); return chain.proceed(request); } }); return client; }
From source file:com.uber.sdk.rides.client.internal.RetrofitUberRidesClient.java
License:Open Source License
/** * Builds a RestAdapter./*ww w . jav a2 s. c o m*/ */ private static RestAdapter buildRestAdapter(final Session session, String endpointHost, final OAuth2Helper oAuth2Helper, RestAdapter.LogLevel logLevel, OkHttpClient httpClient) throws IOException { RequestInterceptor requestInterceptor = new RequestInterceptor() { @Override public void intercept(RequestFacade requestFacade) { Credential credential = session.getCredential(); if (credential != null) { oAuth2Helper.refreshCredentialIfNeeded(credential); requestFacade.addHeader("Authorization", "Bearer " + credential.getAccessToken()); } else { requestFacade.addHeader("Authorization", "Token " + session.getServerToken()); } if (session.getLocale() != null) { requestFacade.addHeader("Accept-Language", session.getLocale().getLanguage()); } requestFacade.addHeader("X-Uber-User-Agent", "Java Rides SDK v" + LIB_VERSION); } }; if (httpClient == null) { httpClient = new OkHttpClient(); httpClient.setConnectTimeout(1, TimeUnit.MINUTES); httpClient.setReadTimeout(1, TimeUnit.MINUTES); httpClient.setFollowRedirects(false); httpClient.interceptors().add(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request oldRequest = chain.request(); Response response = chain.proceed(oldRequest); if (response.isRedirect()) { String redirectUrl = response.header(HttpHeaders.LOCATION); Request newRequest = oldRequest.newBuilder().url(redirectUrl).build(); return chain.proceed(newRequest); } return response; } }); } return new RestAdapter.Builder().setEndpoint(endpointHost) .setConverter(new GsonConverter(new GsonBuilder().create())) .setRequestInterceptor(requestInterceptor).setClient(new OkClient(httpClient)).setLogLevel(logLevel) .build(); }
From source file:com.xing.api.Oauth1SigningInterceptor.java
License:Apache License
public Request signRequest(Request request) throws IOException { byte[] nonce = new byte[NUANCE_BYTES]; random.nextBytes(nonce);/*from ww w .j av a2 s . c om*/ String oauthNonce = CHARACTER_PATTERN.matcher(ByteString.of(nonce).base64()).replaceAll(""); String oauthTimestamp = clock.millis(); String consumerKeyValue = UrlEscapeUtils.escape(consumerKey); String accessTokenValue = UrlEscapeUtils.escape(accessToken); SortedMap<String, String> parameters = new TreeMap<>(); parameters.put(OAUTH_CONSUMER_KEY, consumerKeyValue); parameters.put(OAUTH_ACCESS_TOKEN, accessTokenValue); parameters.put(OAUTH_NONCE, oauthNonce); parameters.put(OAUTH_TIMESTAMP, oauthTimestamp); parameters.put(OAUTH_SIGNATURE_METHOD, OAUTH_SIGNATURE_METHOD_VALUE); parameters.put(OAUTH_VERSION, OAUTH_VERSION_VALUE); HttpUrl url = request.httpUrl(); for (int i = 0; i < url.querySize(); i++) { parameters.put(UrlEscapeUtils.escape(url.queryParameterName(i)), UrlEscapeUtils.escape(url.queryParameterValue(i))); } Buffer body = new Buffer(); RequestBody requestBody = request.body(); if (requestBody != null) { requestBody.writeTo(body); } while (!body.exhausted()) { long keyEnd = body.indexOf((byte) '='); if (keyEnd == -1) { throw new IllegalStateException("Key with no value: " + body.readUtf8()); } String key = body.readUtf8(keyEnd); body.skip(1); // Equals. long valueEnd = body.indexOf((byte) '&'); String value = valueEnd == -1 ? body.readUtf8() : body.readUtf8(valueEnd); if (valueEnd != -1) { body.skip(1); // Ampersand. } parameters.put(key, value); } Buffer base = new Buffer(); String method = request.method(); base.writeUtf8(method); base.writeByte('&'); base.writeUtf8(UrlEscapeUtils.escape(request.httpUrl().newBuilder().query(null).build().toString())); base.writeByte('&'); boolean first = true; for (Entry<String, String> entry : parameters.entrySet()) { if (!first) { base.writeUtf8(UrlEscapeUtils.escape("&")); } first = false; base.writeUtf8(UrlEscapeUtils.escape(entry.getKey())); base.writeUtf8(UrlEscapeUtils.escape("=")); base.writeUtf8(UrlEscapeUtils.escape(entry.getValue())); } String signingKey = UrlEscapeUtils.escape(consumerSecret) + '&' + UrlEscapeUtils.escape(accessSecret); SecretKeySpec keySpec = new SecretKeySpec(signingKey.getBytes(), "HmacSHA1"); Mac mac; try { mac = Mac.getInstance("HmacSHA1"); mac.init(keySpec); } catch (NoSuchAlgorithmException | InvalidKeyException e) { throw new IllegalStateException(e); } byte[] result = mac.doFinal(base.readByteArray()); String signature = ByteString.of(result).base64(); String authorization = "OAuth " // + OAUTH_CONSUMER_KEY + "=\"" + consumerKeyValue + "\", " // + OAUTH_NONCE + "=\"" + oauthNonce + "\", " // + OAUTH_SIGNATURE + "=\"" + UrlEscapeUtils.escape(signature) + "\", " // + OAUTH_SIGNATURE_METHOD + "=\"" + OAUTH_SIGNATURE_METHOD_VALUE + "\", " // + OAUTH_TIMESTAMP + "=\"" + oauthTimestamp + "\", " // + OAUTH_ACCESS_TOKEN + "=\"" + accessTokenValue + "\", " // + OAUTH_VERSION + "=\"" + OAUTH_VERSION_VALUE + '"'; return request.newBuilder().addHeader("Authorization", authorization).build(); }
From source file:com.yandex.disk.rest.LoggingInterceptor.java
License:Apache License
@Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); String hash = Integer.toHexString(chain.hashCode()); String sendPrefix = hash + SEND_PREFIX; String receivePrefix = hash + RECEIVE_PREFIX; if (logWire) { RequestBody requestBody = request.body(); if (requestBody != null) { logger.info(sendPrefix + "request: " + requestBody); Buffer buffer = new Buffer(); requestBody.writeTo(buffer); byte[] requestBuffer = ByteStreams.toByteArray(buffer.inputStream()); logBuffer(sendPrefix, requestBuffer); }/*from w ww .ja va 2 s .c om*/ request = request.newBuilder().removeHeader("Accept-Encoding").addHeader("Accept-Encoding", "").build(); } logger.info(sendPrefix + request.method() + " " + request.url()); logger.info(sendPrefix + "on " + chain.connection()); logHeaders(sendPrefix, request.headers()); Response response = chain.proceed(request); logger.info(receivePrefix + response.protocol() + " " + response.code() + " " + response.message()); logHeaders(receivePrefix, response.headers()); if (logWire) { ResponseBody body = response.body(); byte[] responseBuffer = ByteStreams.toByteArray(body.byteStream()); response = response.newBuilder().body(ResponseBody.create(body.contentType(), responseBuffer)).build(); logBuffer(receivePrefix, responseBuffer); } return response; }
From source file:io.fabric8.devops.connector.DevOpsConnector.java
License:Apache License
protected void createGerritRepo(String repoName, String gerritUser, String gerritPwd, String gerritGitInitialCommit, String gerritGitRepoDescription) throws Exception { // lets add defaults if not env vars final String username = Strings.isNullOrBlank(gerritUser) ? "admin" : gerritUser; final String password = Strings.isNullOrBlank(gerritPwd) ? "secret" : gerritPwd; log.info("A Gerrit git repo will be created for this name : " + repoName); String gerritAddress = KubernetesHelper.getServiceURL(kubernetes, ServiceNames.GERRIT, namespace, "http", true);/*from w ww . ja v a 2 s . c om*/ log.info("Found gerrit address: " + gerritAddress + " for namespace: " + namespace + " on Kubernetes address: " + kubernetes.getMasterUrl()); if (Strings.isNullOrBlank(gerritAddress)) { throw new Exception("No address for service " + ServiceNames.GERRIT + " in namespace: " + namespace + " on Kubernetes address: " + kubernetes.getMasterUrl()); } String GERRIT_URL = gerritAddress + "/a/projects/" + repoName; OkHttpClient client = new OkHttpClient(); if (isNotNullOrEmpty(gerritUser) && isNotNullOrEmpty(gerritPwd)) { client.setAuthenticator(new Authenticator() { @Override public Request authenticate(Proxy proxy, Response response) throws IOException { List<Challenge> challenges = response.challenges(); Request request = response.request(); for (int i = 0, size = challenges.size(); i < size; i++) { Challenge challenge = challenges.get(i); if (!"Basic".equalsIgnoreCase(challenge.getScheme())) continue; String credential = Credentials.basic(username, password); return request.newBuilder().header("Authorization", credential).build(); } return null; } @Override public Request authenticateProxy(Proxy proxy, Response response) throws IOException { return null; } }); } System.out.println("Requesting : " + GERRIT_URL); try { CreateRepositoryDTO createRepoDTO = new CreateRepositoryDTO(); createRepoDTO.setDescription(gerritGitRepoDescription); createRepoDTO.setName(repoName); createRepoDTO.setCreate_empty_commit(Boolean.valueOf(gerritGitInitialCommit)); RequestBody body = RequestBody.create(JSON, MAPPER.writeValueAsString(createRepoDTO)); Request request = new Request.Builder().post(body).url(GERRIT_URL).build(); Response response = client.newCall(request).execute(); System.out.println("responseBody : " + response.body().string()); } catch (Throwable t) { throw new RuntimeException(t); } finally { if (client != null && client.getConnectionPool() != null) { client.getConnectionPool().evictAll(); } } }
From source file:io.fabric8.docker.client.utils.HttpClientUtils.java
License:Apache License
public static OkHttpClient createHttpClient(final Config config) { try {// w ww.j a va 2s . co m OkHttpClient httpClient = new OkHttpClient(); httpClient.setConnectionPool(ConnectionPool.getDefault()); // Follow any redirects httpClient.setFollowRedirects(true); httpClient.setFollowSslRedirects(true); if (config.isTrustCerts()) { httpClient.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String s, SSLSession sslSession) { return true; } }); } if (usesUnixSocket(config)) { URL masterURL = new URL(config.getDockerUrl().replaceFirst(UNIX_SCHEME, FILE_SCHEME)); httpClient.setSocketFactory(new UnixSocketFactory(masterURL.getFile())); config.setDockerUrl(UNIX_FAKE_URL); } TrustManager[] trustManagers = SSLUtils.trustManagers(config); KeyManager[] keyManagers = SSLUtils.keyManagers(config); if (keyManagers != null || trustManagers != null || config.isTrustCerts()) { try { SSLContext sslContext = SSLUtils.sslContext(keyManagers, trustManagers, config.isTrustCerts()); httpClient.setSslSocketFactory(sslContext.getSocketFactory()); } catch (GeneralSecurityException e) { throw new AssertionError(); // The system has no TLS. Just give up. } } if (isNotNullOrEmpty(config.getUsername()) && isNotNullOrEmpty(config.getPassword())) { httpClient.setAuthenticator(new Authenticator() { @Override public Request authenticate(Proxy proxy, Response response) throws IOException { List<Challenge> challenges = response.challenges(); Request request = response.request(); HttpUrl url = request.httpUrl(); for (int i = 0, size = challenges.size(); i < size; i++) { Challenge challenge = challenges.get(i); if (!"Basic".equalsIgnoreCase(challenge.getScheme())) continue; String credential = Credentials.basic(config.getUsername(), config.getPassword()); return request.newBuilder().header("Authorization", credential).build(); } return null; } @Override public Request authenticateProxy(Proxy proxy, Response response) throws IOException { return null; } }); } else if (config.getOauthToken() != null) { httpClient.interceptors().add(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request authReq = chain.request().newBuilder() .addHeader("Authorization", "Bearer " + config.getOauthToken()).build(); return chain.proceed(authReq); } }); } Logger reqLogger = LoggerFactory.getLogger(HttpLoggingInterceptor.class); if (reqLogger.isTraceEnabled()) { HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); httpClient.networkInterceptors().add(loggingInterceptor); } if (config.getConnectionTimeout() > 0) { httpClient.setConnectTimeout(config.getConnectionTimeout(), TimeUnit.MILLISECONDS); } if (config.getRequestTimeout() > 0) { httpClient.setReadTimeout(config.getRequestTimeout(), TimeUnit.MILLISECONDS); } // Only check proxy if it's a full URL with protocol if (config.getDockerUrl().toLowerCase().startsWith(Config.HTTP_PROTOCOL_PREFIX) || config.getDockerUrl().startsWith(Config.HTTPS_PROTOCOL_PREFIX)) { try { URL proxyUrl = getProxyUrl(config); if (proxyUrl != null) { httpClient.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyUrl.getHost(), proxyUrl.getPort()))); } } catch (MalformedURLException e) { throw new DockerClientException("Invalid proxy server configuration", e); } } return httpClient; } catch (Exception e) { throw DockerClientException.launderThrowable(e); } }
From source file:io.fabric8.kubernetes.client.utils.HttpClientUtils.java
License:Apache License
public static OkHttpClient createHttpClient(final Config config) { try {// w w w . ja va 2 s . c o m OkHttpClient httpClient = new OkHttpClient(); // Follow any redirects httpClient.setFollowRedirects(true); httpClient.setFollowSslRedirects(true); if (config.isTrustCerts()) { httpClient.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String s, SSLSession sslSession) { return true; } }); } TrustManager[] trustManagers = SSLUtils.trustManagers(config); KeyManager[] keyManagers = SSLUtils.keyManagers(config); if (keyManagers != null || trustManagers != null || config.isTrustCerts()) { try { SSLContext sslContext = SSLUtils.sslContext(keyManagers, trustManagers, config.isTrustCerts()); httpClient.setSslSocketFactory(sslContext.getSocketFactory()); } catch (GeneralSecurityException e) { throw new AssertionError(); // The system has no TLS. Just give up. } } if (isNotNullOrEmpty(config.getUsername()) && isNotNullOrEmpty(config.getPassword())) { httpClient.setAuthenticator(new Authenticator() { @Override public Request authenticate(Proxy proxy, Response response) throws IOException { List<Challenge> challenges = response.challenges(); Request request = response.request(); HttpUrl url = request.httpUrl(); for (int i = 0, size = challenges.size(); i < size; i++) { Challenge challenge = challenges.get(i); if (!"Basic".equalsIgnoreCase(challenge.getScheme())) continue; String credential = Credentials.basic(config.getUsername(), config.getPassword()); return request.newBuilder().header("Authorization", credential).build(); } return null; } @Override public Request authenticateProxy(Proxy proxy, Response response) throws IOException { return null; } }); } else if (config.getOauthToken() != null) { httpClient.interceptors().add(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request authReq = chain.request().newBuilder() .addHeader("Authorization", "Bearer " + config.getOauthToken()).build(); return chain.proceed(authReq); } }); } Logger reqLogger = LoggerFactory.getLogger(HttpLoggingInterceptor.class); if (reqLogger.isTraceEnabled()) { HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); httpClient.networkInterceptors().add(loggingInterceptor); } if (config.getConnectionTimeout() > 0) { httpClient.setConnectTimeout(config.getConnectionTimeout(), TimeUnit.MILLISECONDS); } if (config.getRequestTimeout() > 0) { httpClient.setReadTimeout(config.getRequestTimeout(), TimeUnit.MILLISECONDS); } // Only check proxy if it's a full URL with protocol if (config.getMasterUrl().toLowerCase().startsWith(Config.HTTP_PROTOCOL_PREFIX) || config.getMasterUrl().startsWith(Config.HTTPS_PROTOCOL_PREFIX)) { try { URL proxyUrl = getProxyUrl(config); if (proxyUrl != null) { httpClient.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyUrl.getHost(), proxyUrl.getPort()))); } } catch (MalformedURLException e) { throw new KubernetesClientException("Invalid proxy server configuration", e); } } if (config.getUserAgent() != null && !config.getUserAgent().isEmpty()) { httpClient.networkInterceptors().add(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request agent = chain.request().newBuilder().header("User-Agent", config.getUserAgent()) .build(); return chain.proceed(agent); } }); } return httpClient; } catch (Exception e) { throw KubernetesClientException.launderThrowable(e); } }