public void run() throws Exception { File socketFile = new File("/tmp/ClientAndServer.sock"); socketFile.delete(); // Clean up from previous runs. MockWebServer server = new MockWebServer(); server.setServerSocketFactory(new UnixDomainServerSocketFactory(socketFile)); server.setProtocols(Collections.singletonList(Protocol.H2_PRIOR_KNOWLEDGE)); server.enqueue(new MockResponse().setBody("hello")); server.start(); OkHttpClient client = new OkHttpClient.Builder() .socketFactory(new UnixDomainSocketFactory(socketFile)) .protocols(Collections.singletonList(Protocol.H2_PRIOR_KNOWLEDGE)) .build(); Request request = new Request.Builder() .url("http://publicobject.com/helloworld.txt") .build(); try (Response response = client.newCall(request).execute()) { System.out.println(response.body().string()); } server.shutdown(); socketFile.delete(); }
class Factory { public static APIService create(Context context) { OkHttpClient.Builder builder = new OkHttpClient().newBuilder(); builder.readTimeout(10, TimeUnit.SECONDS); builder.connectTimeout(5, TimeUnit.SECONDS); if (BuildConfig.DEBUG) { HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC); builder.addInterceptor(interceptor); } builder.addInterceptor(chain -> { Request request = chain.request().newBuilder().addHeader("key", "value").build(); return chain.proceed(request); }); builder.addInterceptor(new UnauthorisedInterceptor(context)); OkHttpClient client = builder.build(); Retrofit retrofit = new Retrofit.Builder().baseUrl(APIService.ENDPOINT).client(client).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterFactory.create()).build(); return retrofit.create(APIService.class); } }
/** * Set the underlying write timeout in milliseconds. * A value of 0 specifies an infinite timeout. */ public void setWriteTimeout(int writeTimeout) { this.client = this.client.newBuilder() .writeTimeout(writeTimeout, TimeUnit.MILLISECONDS) .build(); }
@Override public String postSSL(String url, String data, String certPass, InputStream certFile) { okhttp3.RequestBody body = okhttp3.RequestBody.create(CONTENT_TYPE_FORM, data); okhttp3.Request request = new okhttp3.Request.Builder().url(url).post(body).build(); InputStream inputStream = certFile; try { KeyStore clientStore = KeyStore.getInstance("PKCS12"); char[] passArray = certPass.toCharArray(); clientStore.load(inputStream, passArray); KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); kmf.init(clientStore, passArray); KeyManager[] kms = kmf.getKeyManagers(); SSLContext sslContext = SSLContext.getInstance("TLSv1"); sslContext.init(kms, null, new SecureRandom()); @SuppressWarnings("deprecation") okhttp3.OkHttpClient httpsClient = new okhttp3.OkHttpClient().newBuilder() .connectTimeout(10, TimeUnit.SECONDS).writeTimeout(10, TimeUnit.SECONDS) .readTimeout(30, TimeUnit.SECONDS).sslSocketFactory(sslContext.getSocketFactory()).build(); okhttp3.Response response = httpsClient.newCall(request).execute(); if (!response.isSuccessful()) throw new RuntimeException("Unexpected code " + response); return response.body().string(); } catch (Exception e) { throw new RuntimeException(e); } finally { IOUtils.closeQuietly(inputStream); } }
public void run() throws Exception { Request request = new Request.Builder() .url("https://publicobject.com/helloworld.txt") .build(); OkHttpClient client = new OkHttpClient.Builder() .addNetworkInterceptor(chain -> { Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) .build(); }) .build(); try (Response response = client.newCall(request).execute()) { if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); System.out.println(response.body().string());
@Override public void run() { try { final int port = ((HandleHttpRequest) runner.getProcessor()).getPort(); MultipartBody multipartBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("p1", "v1") .addFormDataPart("p2", "v2") .addFormDataPart("file1", "my-file-text.txt", RequestBody.create(MediaType.parse("text/plain"), createTextFile("my-file-text.txt", "Hello", "World"))) .addFormDataPart("file2", "my-file-data.json", RequestBody.create(MediaType.parse("application/json"), createTextFile("my-file-text.txt", "{ \"name\":\"John\", \"age\":30 }"))) .addFormDataPart("file3", "my-file-binary.bin", RequestBody.create(MediaType.parse("application/octet-stream"), generateRandomBinaryData(100))) .build(); Request request = new Request.Builder() .url(String.format("http://localhost:%s/my/path", port)) .post(multipartBody).build(); OkHttpClient client = new OkHttpClient.Builder() .readTimeout(3000, TimeUnit.MILLISECONDS) .writeTimeout(3000, TimeUnit.MILLISECONDS) .build(); try (Response response = client.newCall(request).execute()) { Assert.assertTrue(String.format("Unexpected code: %s, body: %s", response.code(), response.body().string()), response.isSuccessful()); } } catch (final Throwable t) { t.printStackTrace(); Assert.fail(t.toString()); } } });
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://backend.example.com") .client(client) .addConverterFactory(GsonConverterFactory.create()) .build(); return retrofit.create(ApiClient.class);
Response okHttpResponse; try { Request.Builder builder = new Request.Builder().url(request.getUrl()); addHeadersToRequestBuilder(builder, request); final RequestBody requestBody = request.getMultiPartRequestBody(); final long requestBodyLength = requestBody.contentLength(); builder = builder.post(new RequestProgressBody(requestBody, request.getUploadProgressListener())); if (request.getCacheControl() != null) { builder.cacheControl(request.getCacheControl()); if (request.getOkHttpClient() != null) { request.setCall(request.getOkHttpClient() .newBuilder() .cache(sHttpClient.cache()) .build() .newCall(okHttpRequest)); } else { request.setCall(sHttpClient.newCall(okHttpRequest));
public void run() throws Exception { for (int i = 0; i < 5; i++) { System.out.println(" Request: " + i); Request request = new Request.Builder() .url("https://api.github.com/search/repositories?q=http") .build(); OkHttpClient clientForCall; if (i == 2) { // Force this request's response to be written to the cache. This way, subsequent responses // can be read from the cache. System.out.println("Force cache: true"); clientForCall = client.newBuilder() .addNetworkInterceptor(REWRITE_CACHE_CONTROL_INTERCEPTOR) .build(); } else { System.out.println("Force cache: false"); clientForCall = client; } try (Response response = clientForCall.newCall(request).execute()) { if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); System.out.println(" Network: " + (response.networkResponse() != null)); System.out.println(); } } }
public void run() throws Exception { Request request = new Request.Builder() .url("http://httpbin.org/delay/1") // This URL is served with a 1 second delay. .build(); // Copy to customize OkHttp for this request. OkHttpClient client1 = client.newBuilder() .readTimeout(500, TimeUnit.MILLISECONDS) .build(); try (Response response = client1.newCall(request).execute()) { System.out.println("Response 1 succeeded: " + response); } catch (IOException e) { System.out.println("Response 1 failed: " + e); } // Copy to customize OkHttp for this request. OkHttpClient client2 = client.newBuilder() .readTimeout(3000, TimeUnit.MILLISECONDS) .build(); try (Response response = client2.newCall(request).execute()) { System.out.println("Response 2 succeeded: " + response); } catch (IOException e) { System.out.println("Response 2 failed: " + e); } }
@Override public void run() { try { final int port = ((HandleHttpRequest) runner.getProcessor()).getPort(); MultipartBody multipartBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("p1", "v1") .addFormDataPart("p2", "v2") .addFormDataPart("file1", "my-file-text.txt", RequestBody.create(MediaType.parse("text/plain"), createTextFile("my-file-text.txt", "Hello", "World"))) .addFormDataPart("file2", "my-file-data.json", RequestBody.create(MediaType.parse("application/json"), createTextFile("my-file-text.txt", "{ \"name\":\"John\", \"age\":30 }"))) .addFormDataPart("file3", "my-file-binary.bin", RequestBody.create(MediaType.parse("application/octet-stream"), generateRandomBinaryData(100))) .build(); Request request = new Request.Builder() .url(String.format("http://localhost:%s/my/path", port)) .post(multipartBody).build(); OkHttpClient client = new OkHttpClient.Builder() .readTimeout(20000, TimeUnit.MILLISECONDS) .writeTimeout(20000, TimeUnit.MILLISECONDS) .build(); try (Response response = client.newCall(request).execute()) { responseCode.set(response.code()); } } catch (final Throwable t) { t.printStackTrace(); Assert.fail(t.toString()); } } });
private GithubApiService() { OkHttpClient.Builder httpclientBuilder = new OkHttpClient.Builder(); httpclientBuilder.connectTimeout(5, TimeUnit.SECONDS); httpclientBuilder.addNetworkInterceptor(new StethoInterceptor()); retrofit = new Retrofit.Builder().client(httpclientBuilder.build()).addConverterFactory(GsonConverterFactory.create()). addCallAdapterFactory(RxJavaCallAdapterFactory.create()).baseUrl(BASE_URL).build(); githubApiServiceInterface = retrofit.create(GithubApiServiceInterface.class); }
public void run() throws Exception { String localhost = InetAddress.getByName("localhost").getCanonicalHostName(); HeldCertificate localhostCertificate = new HeldCertificate.Builder() .addSubjectAlternativeName(localhost) .build(); HandshakeCertificates serverCertificates = new HandshakeCertificates.Builder() .heldCertificate(localhostCertificate) .build(); MockWebServer server = new MockWebServer(); server.useHttps(serverCertificates.sslSocketFactory(), false); server.enqueue(new MockResponse()); HandshakeCertificates clientCertificates = new HandshakeCertificates.Builder() .addTrustedCertificate(localhostCertificate.certificate()) .build(); OkHttpClient client = new OkHttpClient.Builder() .sslSocketFactory(clientCertificates.sslSocketFactory(), clientCertificates.trustManager()) .build(); Call call = client.newCall(new Request.Builder() .url(server.url("/")) .build()); Response response = call.execute(); System.out.println(response.handshake().tlsVersion()); }
public void connect(OkHttpClient client) { client = client.newBuilder() .eventListener(EventListener.NONE) .build(); call = client.newCall(request); call.timeout().clearTimeout(); call.enqueue(this); }
OkHttpClient.Builder okHttpClientBuilder = new OkHttpClient.Builder(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://little-silence-8649.getsandbox.com") .client(okHttpClientBuilder.build()) .addConverterFactory(GsonConverterFactory.create()) .build(); apiInterface = retrofit.create(MyRetrofit.class);
@Override public Response process(Request request) throws Exception { currentRequest = request; OkHttpClient.Builder hcBuilder = OkHttpClientBuilderProvider.getInstance(); if (crawlerModel.isUseCookie()){ hcBuilder.cookieJar(crawlerModel.getOkHttpCookiesManager()); addCookies(request.getUrl(),request.getSeimiCookies()); } if (crawlerModel.getStdProxy()!=null){ hcBuilder.proxy(crawlerModel.getStdProxy()); } hcBuilder.readTimeout(crawlerModel.getHttpTimeOut(), TimeUnit.MILLISECONDS); hcBuilder.connectTimeout(crawlerModel.getHttpTimeOut(),TimeUnit.MILLISECONDS); okHttpClient = hcBuilder.build(); currentRequestBuilder = OkHttpRequestGenerator.getOkHttpRequesBuilder(request,crawlerModel); lastResponse = okHttpClient.newCall(currentRequestBuilder.build()).execute(); return renderResponse(lastResponse,request); }
private static void configureLogging(OkHttpClient.Builder builder) { if (log.isDebugEnabled()) { HttpLoggingInterceptor logging = new HttpLoggingInterceptor(log::debug); logging.setLevel(HttpLoggingInterceptor.Level.BODY); builder.addInterceptor(logging); } }
this.hostName = parseHost(url); this.loggingInterceptor = new HttpLoggingInterceptor(); setLogLevel(LOG_LEVEL); OkHttpClient.Builder clonedOkHttpBuilder = okHttpBuilder.build().newBuilder(); clonedOkHttpBuilder.addInterceptor(loggingInterceptor).addInterceptor(gzipRequestInterceptor). addInterceptor(new BasicAuthInterceptor(username, password)); Factory converterFactory = null; switch (responseFormat) { case MSGPACK: clonedOkHttpBuilder.addInterceptor(chain -> { Request request = chain.request().newBuilder().addHeader("Accept", APPLICATION_MSGPACK).build(); return chain.proceed(request); }); Retrofit.Builder clonedRetrofitBuilder = retrofitBuilder.baseUrl(url).build().newBuilder(); this.retrofit = clonedRetrofitBuilder.client(clonedOkHttpBuilder.build()) .addConverterFactory(converterFactory).build(); this.influxDBService = this.retrofit.create(InfluxDBService.class);
? new StreamedRequestBody(contentLength) : new BufferedRequestBody(contentLength); requestBody.timeout().timeout(client.writeTimeoutMillis(), TimeUnit.MILLISECONDS); Request request = new Request.Builder() .url(url) .headers(requestHeaders.build()) .method(method, requestBody) .build(); OkHttpClient.Builder clientBuilder = client.newBuilder(); clientBuilder.interceptors().clear(); clientBuilder.interceptors().add(UnexpectedException.INTERCEPTOR); clientBuilder.networkInterceptors().clear(); clientBuilder.networkInterceptors().add(networkInterceptor); clientBuilder.dispatcher(new Dispatcher(client.dispatcher().executorService())); clientBuilder.cache(null); return call = clientBuilder.build().newCall(request);
public static void main(String... args) throws IOException { HostSelectionInterceptor hostSelectionInterceptor = new HostSelectionInterceptor(); OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(hostSelectionInterceptor) .build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://www.github.com/") .callFactory(okHttpClient) .build(); Pop pop = retrofit.create(Pop.class); Response<ResponseBody> response1 = pop.robots().execute(); System.out.println("Response from: " + response1.raw().request().url()); System.out.println(response1.body().string()); hostSelectionInterceptor.setHost("www.pepsi.com"); Response<ResponseBody> response2 = pop.robots().execute(); System.out.println("Response from: " + response2.raw().request().url()); System.out.println(response2.body().string()); } }