首页 > 其他分享 >OKhttp3

OKhttp3

时间:2024-06-23 15:23:15浏览次数:21  
标签:请求 ConnectionPool OKhttp3 OkHttpClient new Dispatcher 连接池

okHttp3

restTemplate引入

// 创建 ConnectionPool
        ConnectionPool connectionPool = new ConnectionPool(5, 5, TimeUnit.MINUTES);

        // 创建 OkHttpClient 并设置参数
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
             .connectionPool(connectionPool)
             .readTimeout(10000, TimeUnit.MILLISECONDS) // 设置读取超时时间为 10 秒
             .connectTimeout(5000, TimeUnit.MILLISECONDS) // 设置连接超时时间为 5 秒
             .build();

        // 创建带有 OkHttp3 并设置了 ConnectionPool 和超时参数的 RestTemplate
        RestTemplate restTemplate = new RestTemplate(new OkHttp3ClientHttpRequestFactory(okHttpClient));

Dispatcher(调度器)和 ConnectionPool(连接池)

Dispatcher(调度器)和 ConnectionPool(连接池)都是用于优化网络请求的重要组件,它们的功能和用途有所不同:

Dispatcher(调度器):

功能:Dispatcher 负责管理和调度网络请求的执行。它决定请求是同步执行还是异步执行,并控制并发请求的数量。
使用场景:适用于需要控制请求并发数量、管理请求执行顺序或在不同线程上执行请求的情况。
示例代码:

java
        Dispatcher dispatcher = new Dispatcher();
        dispatcher.setMaxRequests(64); 
        dispatcher.setMaxRequestsPerHost(5);

ConnectionPool(连接池):

功能:ConnectionPool 用于管理和复用网络连接,减少创建和关闭连接的开销,提高网络请求的效率。
使用场景:当需要频繁进行网络请求,且请求的服务器地址相对固定时,可以使用连接池来复用连接,避免重复创建连接的开销。
示例代码:

java
        OkHttpClient client = new OkHttpClient.Builder()
            .connectionPool(new ConnectionPool()) 
            .build();

在实际使用中,可以根据具体的需求和场景来选择使用 Dispatcher 和 ConnectionPool。例如,如果需要控制请求的并发数量和执行顺序,可以使用 Dispatcher;如果需要复用网络连接以提高性能,可以使用 ConnectionPool。同时,还可以根据需要调整 Dispatcher 和 ConnectionPool 的参数,以满足特定的性能和资源管理要求。

标签:请求,ConnectionPool,OKhttp3,OkHttpClient,new,Dispatcher,连接池
From: https://www.cnblogs.com/DennyZhao/p/18263479

相关文章

  • 【Frida】【Android】08_爬虫之网络通信库okhttp3
    ......
  • android使用okhttp3连接springboot
    首先在build.gradle.kts中导入依赖在dependencies{}中添加以下代码implementation("com.squareup.okhttp3:okhttp:4.9.1")之后在MainActivity中加入以下代码privateOkHttpClientclient=newOkHttpClient();privatevoidsendPostRequest(Useruser){//......
  • RestTemplate+OkHttp3整合(一)
    代码(HTTP、HTTPS)一、POM<!-okhttp-><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.10.0</version></dependency><!-非必要,这里解析流数据时用了一下->&l......
  • 解决使用 OkHttp 库出现 java.lang.NoSuchMethodError: okhttp3.internal.platform.Pl
    报错:Exceptioninthread"main"java.lang.NoSuchMethodError:okhttp3.internal.platform.Platform.log(ILjava/lang/String;Ljava/lang/Throwable;)Vatokhttp3.logging.HttpLoggingInterceptor$Logger.lambda$static$0(HttpLoggingInterceptor.java:112)......
  • OkHttp3发送http请求
    导入依赖<!--https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp--><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version&......
  • OKHttp3主流程再分析
    一、概述为什么要是用OKHttp3 总结下来就两个大的方面 一、成熟稳定 OkHttp距今已有10多年的历史,在Android中大量且广泛的应用,在大、中、小项目中无处不在。可以这样说,只要是一个Android项目,网络框架的底层必定是OKHttp 二、高效 1.OkHttp的底......
  • android studio okhttp3.x和okhttp4.x共存
    AndroidStudio中实现OkHttp3.x和OkHttp4.x共存的步骤概述在Android开发过程中,我们常常会用到网络请求库OkHttp来进行网络请求操作。有时候,我们可能需要同时使用不同版本的OkHttp库来满足不同的需求。本文将详细介绍如何在AndroidStudio中实现OkHttp3.x和OkHttp4.x的共存。步骤......
  • java.lang.NoClassDefFoundError: okhttp3/Callback(已解决)
    今天在向MinIO上传文件时出现:java.lang.NoClassDefFoundError:okhttp3/Callback 但是的确已经导过包了,如图: 经过测试,应该时版本问题所致,这里修改版本以后成功解决。  ......
  • okhttp3的基本使用(post发送json示例)
    依赖<!--https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp--><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><ve......
  • Okhttp3中设置超时的方法
    场景SSM项目中使用Okhttp3请求接口,进行junit单元测试时提示连接超时:java.net.SocketTimeoutException 实现找到新建OkHttpClient对象的地方:OkHttpClientclient=newOkHt......