本文系转载,主要代码来源为

https://github.com/square/retrofit/issues/2561

定义超时的拦截器

/*** 自定义的超时拦截器*/
public class MyTimeoutInterceptor implements Interceptor {public static final String CONNECT_TIMEOUT = "CONNECT_TIMEOUT";public static final String READ_TIMEOUT = "READ_TIMEOUT";public static final String WRITE_TIMEOUT = "WRITE_TIMEOUT";@Overridepublic Response intercept(Chain chain) throws IOException {int connectTimeout = chain.connectTimeoutMillis();int readTimeout = chain.readTimeoutMillis();int writeTimeout = chain.writeTimeoutMillis();Request request = chain.request();String connectNew = request.header(CONNECT_TIMEOUT);String readNew = request.header(READ_TIMEOUT);String writeNew = request.header(WRITE_TIMEOUT);if (!CommonUtil.isEmpty(connectNew)) {connectTimeout = Integer.parseInt(connectNew);}if (!CommonUtil.isEmpty(readNew)) {readTimeout = Integer.parseInt(readNew);}if (!CommonUtil.isEmpty(writeNew)) {writeTimeout = Integer.parseInt(writeNew);}return chain.withConnectTimeout(connectTimeout, TimeUnit.MILLISECONDS).withReadTimeout(readTimeout, TimeUnit.MILLISECONDS).withWriteTimeout(writeTimeout, TimeUnit.MILLISECONDS).proceed(request);}
}

创建retrofit的实例,添加拦截器

private RetrofitSingletonWhjk() {HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);OkHttpClient okHttpClient = new OkHttpClient.Builder().connectTimeout(10 * 1000, TimeUnit.MILLISECONDS).readTimeout(10 * 1000, TimeUnit.MILLISECONDS).writeTimeout(10 * 1000, TimeUnit.MILLISECONDS).addInterceptor(new MyTimeoutInterceptor()).addInterceptor(loggingInterceptor).build();Gson gson = GsonFactory.getInstance().generateGson();String baseUrl = "http://192.168.0.138:8080/test/";mRetrofit = new Retrofit.Builder().baseUrl(baseUrl).client(okHttpClient).addConverterFactory(GsonConverterFactory.create(gson)).build();}

请求时设置头部

/*** 上传* @param file 文件* @param authorization token*/@Multipart@Headers({"CONNECT_TIMEOUT:600000", "READ_TIMEOUT:600000", "WRITE_TIMEOUT:600000"})@POST("upload")Call<Result<Object>> upload(@Part MultipartBody.Part file);

retrofit设置单个请求的超时相关推荐

  1. 设置AFNetworking网络请求的超时时间

    设置AFNetworking网络请求的超时时间 也许大家使用的时候已经察觉到,设置AFNetworking的超时时间并不管用,但可以用特殊的方式来处理. 以下是笔者基于AFNetworking2.5. ...

  2. axios请求超时,设置重新请求的完美解决方法

    自从使用Vue2之后,就使用官方推荐的axios的插件来调用API,在使用过程中,如果服务器或者网络不稳定掉包了, 你们该如何处理呢? 下面我给你们分享一下我的经历. 具体原因 最近公司在做一个项目, ...

  3. go http.Get请求 http.Post请求 http.PostForm请求 Client 超时设置

    http中有Get/Post/PostForm方法 也可以通过http包中设置client 请求配置 ,然后通过client.Do方法实现请求 下demo中功能都实现,其中有详细说明: package ...

  4. axios请求失败重新发起请求_axios请求超时,设置重新请求的完美解决方法

    自从使用Vue2之后,就使用官方推荐的axios的插件来调用API,在使用过程中,如果服务器或者网络不稳定掉包了, 你们该如何处理呢? 下面我给你们分享一下我的经历. 具体原因 最近公司在做一个项目, ...

  5. 设置HTTP请求超时自动重发

    Java Apcahe的HTTPClient工具Http请求当请求超时时底层会默认进行重发,默认重发次数为3次,在某些情况下为了防止重复的请求,需要将自动重发覆盖. 设置HTTP参数,设置不进行自动重 ...

  6. PHP cURL可以在单个请求中检索响应标头和正文吗?

    本文翻译自:Can PHP cURL retrieve response headers AND body in a single request? Is there any way to get b ...

  7. Python-requests请求的超时时间

    python程序根据url从互联网上批量下载图片时,设置HTTP或Socket超时,来防止爬虫爬取某个页面时间过长,导致程序卡置不前. 一种解决方案是全局设置: import socket socke ...

  8. Ajax请求session超时处理流程(DWZ)

    DWZ-Java框架Ajax请求session超时处理思路:     1)SessionValidateFilter统一验证session是否超时     2)SessionValidateFilte ...

  9. Feign Hystrix (HystrixCommonKey) 设置单独接口的超时时间和FallBack

    Feign设置单独接口的超时时间和FallBack(HystrixCommonKey) HystrixCommonKey生成方法:类名#方法名(入参类型)   final class Default ...

最新文章

  1. jQuery中用ajax访问php接口文件
  2. 基础回顾(正则、循环、和、 int和Integer、String /StringBuffer、Array和ArrayList、值传递和引用传递、 Lamda、java8)
  3. MVC根据CheckBox的Value值选中对应的复选框及获取选中的Value值
  4. 5G NR 频率 带宽 栅格
  5. caffe学习路的起点
  6. plantUml活动图(新语法)
  7. 数据结构与算法之-----链表(List)
  8. vue 自定义指令_vue 自定义指令
  9. mysql外键可以是空吗_带外键的表列可以为NULL吗?
  10. Thinkphp3.2+ 微信小程序图片上传
  11. Internet Download Manager永久版功能强大的网络下载器
  12. snmp - 简单网络管理协议
  13. python 读取geotiff_python gdal 写GeoTiff文件
  14. 今日头条推荐算法原理全文详解
  15. java tld 方法重载_java 中的TLD文件
  16. 使用chkconfig管理开机自启动
  17. ios代码混淆-字符串加密的优点和其他破解方法
  18. 转售联通物联网卡的盈利可能性探讨
  19. 拷贝PDF中文字出现英文乱码的问题
  20. 易智瑞地理信息系统桌面软件10.7安装及单机版许可授权操作手册

热门文章

  1. 开源中最好的Web开发的资源 ——来自CoolShell.cn
  2. 苹果android通用插头,苹果充电器插头可以给安卓手机用吗??
  3. 26 欧拉积分疑惑解析
  4. JetBrains 推出全新数据科学 IDE——DataSpell
  5. 卷积层和全连接层的区别_CNN卷积层、全连接层的参数量、计算量
  6. 怎么用蓝光u宝装linux系统,蓝光U宝U盘启动盘制作工具V3.3(完整版)使用教程
  7. Hexo站点SEO优化攻略
  8. 天猫代运营公司十大排名
  9. 一招恢复删除的微信好友
  10. 高新技术企业申请需要什么条件