我有一个OKHTTP客户机,它使用我的自定义网络拦截器将令牌插入请求头中。

我不断地得到例外

E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher

Process: com.edstart.tazuzu, PID: 32093

java.lang.NullPointerException: interceptor com.edstart.tazuzu.RestAPI.RequestsErrorInterceptor@2bde70f returned null

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:157)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)

at com.edstart.tazuzu.RestAPI.TazuzuRequestsInterceptor.intercept(TazuzuRequestsInterceptor.kt:30)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)

at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)

at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)

at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)

at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)

at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254)

at okhttp3.RealCall$AsyncCall.execute(RealCall.java:200)

at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)

at java.lang.Thread.run(Thread.java:764)

我试过用Try/Catch包围拦截器。同时也抛出错误,以避免应用程序崩溃,但没有很好的效果。

拦截器代码:

package com.edstart.tazuzu.RestAPI

import android.util.Log

import com.edstart.tazuzu.Managers.ServerManager

import okhttp3.Interceptor

import okhttp3.Response

import java.net.InetAddress

import kotlin.Exception

/**

* interceptor for the tazuzu api requests to insert the token before the request

* send to the server (for authentication)

*/

class TazuzuRequestsInterceptor : Interceptor {

override fun intercept(chain: Interceptor.Chain?): Response? {

try {

if (!isInternetAvailable()) {

throw Exception()

} else {

var request = chain?.request()

if (request != null) {

val builder = request.newBuilder()

if (builder != null) {

builder.addHeader("x-access-token", ServerManager.token)

request = builder.build()

if (request != null && chain != null) {

return chain.proceed(request)

}

}

}

}

} catch (e: java.lang.Exception) {

Log.e("###", e.toString())

throw e

}

return null

}

private fun isInternetAvailable(): Boolean {

return try {

val ipAddr = InetAddress.getByName("google.com")

//You can replace it with your name

!ipAddr.equals("")

} catch (e: Exception) {

false

}

}

请帮忙,寻找控制异常的方法,以避免应用程序崩溃。

java build返回空值_OKHTTP拦截器不断返回空值并使应用程序崩溃相关推荐

  1. Java自定义异常类以及异常拦截器

    Java自定义异常类以及异常拦截器 参考文章: (1)Java自定义异常类以及异常拦截器 (2)https://www.cnblogs.com/acm-bingzi/p/java_exception. ...

  2. java中注解动态传参_SpringMVC之注解、传参、返回值及拦截器

    1. 注解式开发之annotation-driven解释 (1) mvc注解驱动在哪个文件中配置? Springmvc.xml (2) 配置mvc注解驱动使用哪个标签? 2. 注解式开发之视图解析器 ...

  3. Java笔记-springframework.ws中拦截器的使用(SOAP)

    这里首先说下客户端拦截器. 这里要实现的效果 这里的打印都是在拦截器中打印的! 下面要介绍如下的东西,如何在拦截器中打印这些东西,其次是在拦截器中添加一个head 对应的Maven <?xml ...

  4. struts 修改拦截器修改返回值_关于struts2简单的介绍与示例

    Apache Struts 2是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构.它利用并延伸了Java Servlet API,鼓励开发者采用MVC架构. 缘起于Apache St ...

  5. Java Servlet 过滤器与 springmvc 拦截器的区别?

    前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...

  6. 439、Java框架93 -【SpringMVC - 拦截器】 2020.12.14

    目录 0.效果 1.拦截器类:IndexInterceptor 2.配置拦截器 3.修改 index.jsp 4.测试 5.参考链接 0.效果 访问地址之后,看到如图所示的拦截器打印的效果 http: ...

  7. Java中的过滤器和拦截器

    一.简介 1.什么是拦截器? (1)在AOP中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AOP的一种实现策略. (2)拦截器是动态拦截Action调用的对象.它提供了 ...

  8. SpringMvc拦截器解决返回数据乱码问题

    本人遇到问题如下: 正确配置完成了springmvc拦截器之后,如果需要在拦截器中,直接返回数据,则返回值为乱码.本人项目编码为UTF-8 一.实现拦截器 package cn.test.interc ...

  9. java SpringBoot登录验证token拦截器

    用户访问接口验证,如果用户没有登录,则不让他访问除登录外的任何接口. 实现思路: 1.前端登录,后端创建token(通过JWT这个依赖),返给前端 2.前端访问其他接口,传递token,后端判断tok ...

最新文章

  1. “AS3.0高级动画编程”学习:第二章转向行为(上)
  2. WebService(基于AXIS的WebService编程)
  3. 从 React Router 谈谈路由的那些事
  4. C#关于参数为null(空值)的方法调用,重载顺序选择彻底研究
  5. weex css单位,Weex系列(7) ——踩坑填坑的总总
  6. Maximal Continuous Rest
  7. python执行js文件
  8. TabLayout 与 FragmentTabHost
  9. 【实战 Ids4】║ 认证中心之内部加权
  10. cgi进程设置多少 宝塔_宝塔面板安装完的一些列操作
  11. js中追加写入文件(字符串追加)_note
  12. C#中Abstract和Virtual的区别
  13. 下 文库 试读_数字资源专题导览 | 科学文库简介
  14. Python爬虫高阶:微店混淆逆向解密
  15. 南方cass快捷键命令修改在哪_南方测绘cass快捷键命令大全,南方测绘cass常用的快捷键命令有哪些?...
  16. D语言(dlang)编写单片机(cortex-m系列)应用需要用到的技巧
  17. 星浩资本-以流程为中心
  18. webpack 的热更新是如何做到的?原理是什么?
  19. 考研数学复习笔记——行列式2
  20. 本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。

热门文章

  1. 《需求工程——软件建模与分析》阅读笔记之二
  2. O(V*n)的多重背包问题
  3. spring 国际化-i18n
  4. java.net.ConnectException: Connection refused: connect
  5. LoadRunner常用函数(转)
  6. 国产数据库 OceanBase 二次刷榜 TPC-C,7 亿 tpmC!
  7. 别扯了,这才是应对高并发的正确处理思路。
  8. 漫画: 可以给女朋友讲解 Linux 内核长啥样了
  9. 马化腾生日当天 微信支付居然崩溃了//(ㄒoㄒ)//
  10. 小程序开发入门基础篇-张代浩-专题视频课程