HttpLoggingInterceptor 上的应用程序崩溃

2023-11-23

我已经使用 Retrofit 2、okhttp 和 okhttp:logging-interceptor 创建了项目。

private static APIInterface apiInterface;
private static RestClient restClient;
private static HttpLoggingInterceptor interceptor;

OkHttpClient okHttpClient = new OkHttpClient();
    okHttpClient.setConnectTimeout(30, TimeUnit.SECONDS);
    okHttpClient.setReadTimeout(30, TimeUnit.SECONDS);
    okHttpClient.interceptors().add(new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {
            Request original = chain.request();

            Request.Builder requestBuilder = original.newBuilder()
                    .header("Accept", "application/json")
                    .header("X-Parse-Application-Id", Constants.PARSE_APP_ID)
                    .header("X-Parse-REST-API-Key", Constants.PARSE_REST_API)
                    .method(original.method(), original.body());

            Request request = requestBuilder.build();
            return chain.proceed(request);
        }
    });

    interceptor = new HttpLoggingInterceptor(); // got crash here
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

    okHttpClient.interceptors().add(interceptor);

这是我的踪迹:

java.lang.VerifyError: com/squareup/okhttp/logging/HttpLoggingInterceptor
   at com.rocker.rest.RestClient.setupRestClient(RestClient.java:62)
   at com.rocker.rest.RestClient.<clinit>(RestClient.java:39)
   at com.rocker.fragment.HistoryFragment.onCreateView(HistoryFragment.java:38)

我没有使用 okio by squareup!


你读过这篇文章吗?https://futurestud.io/blog/retrofit-2-log-requests-and-responses

Retrofit 2 完全依赖 OkHttp 进行任何网络操作。 由于 OkHttp 是 Retrofit 2 的对等依赖项,因此您不需要添加 Retrofit 2 作为稳定版发布后的额外依赖项 发布。

OkHttp 2.6.0 附带一个日志拦截器作为内部 依赖项,您可以直接将其用于您的 Retrofit 客户端。 Retrofit 2.0.0-beta2仍然使用OkHttp 2.5.0。未来的版本将 将依赖关系提高到更高的 OkHttp 版本。这就是为什么你需要 手动导入日志拦截器。添加以下行到 您的 gradle 在 build.gradle 文件中导入以获取日志记录 拦截器依赖。

编译 'com.squareup.okhttp:logging-interceptor:2.6.0'

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HttpLoggingInterceptor 上的应用程序崩溃 的相关文章

随机推荐

  • C++ 排序跟踪索引[重复]

    这个问题在这里已经有答案了 您是否有一些有效的例程来返回带有数组中排序元素索引的数组 我认为使用 stl 存在一些方便的方法vector 您是否已经在不使用 stl 的情况下实现了高效的算法 或者您是否有伪代码或 C 代码的参考 使用 C
  • 工具栏和选项卡之间有一条线

    如何删除工具栏和tablayout之间的深线 我在google上搜索有人说 向工具栏和tablayout添加一些标高 我做了但它不起作用 从工具栏和tablyout中删除标高后 它也不起作用 请帮帮我 tablayout xml
  • Clojure 中向量和列表上 conj 的行为差异

    我是 clojure 的新手 最初我正在经历Clojure org and 作弊簿 我想知道不同行为的确切原因是什么conj在列表和矢量上 conj 1 2 3 4 1 2 3 4 conj list 3 2 1 4 4 3 2 1 当我将
  • 为什么在 PHP 中将整数视为数组 ($int[$index]) 不会引发任何错误? [复制]

    这个问题在这里已经有答案了 这只是出于好奇而提出的一个简单问题 我花了一整天的时间调试我的 PHP 代码 发现问题是由于将整数视为数组造成的 x int index this returns null but no error at all
  • 使用 PHP 连接到远程 MySQL 服务器

    我正在尝试使用以下代码从本地计算机虚拟主机连接到远程 MySQL 服务器 conn mysql connect dbhost dbuser dbpass or die mysql error mysql select db dbname c
  • 在Android中对base64字符串中的位图对象进行编码和解码

    我想要编码和解码Bitmap字符串中的对象base64 我使用Android API10 我尝试过使用这种形式的方法来编码 但没有成功Bitmap public static String encodeTobase64 Bitmap ima
  • 覆盖嵌套路由中的参数

    我希望路线的命名约定保持一致 默认参数是 id对于任何资源 但是 如果其中嵌套了另一个资源 则父资源的参数将更改为 parent id 我的路由看起来像 resources users do resources projects do re
  • Python类继承多处理,访问类成员时遇到问题

    简而言之 假设我有以下内容 import multiprocessing class Worker multiprocessing Process def init self multiprocessing Process init sel
  • 将 SELECT-OPTIONS 文本右对齐

    这些是我正在开发的表单的屏幕截图 我想设计表单中的选择框 使选项中的文本右对齐 并且在选择选项后 所显示的所选文本也应显示如下图所示 HTML 代码
  • 在哪里可以找到 WPF DataGrid 或一般 WPF 控件的 XAML 模板? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想修改控制模板DataGrid 4 0版本 但我不确定现有的模板是什么样的 有谁知道它是什么或者我在哪里可以找到它 一般来说 对于某些WPF控件
  • 设置 MS-Access DB 以进行多用户访问

    我们正在考虑 增长 一个小型 MS Access DB 其中包含一些表 表单和多个用户的查询 使用不同的后端是另一种更长期的选择 不幸的是目前不可接受 大多数用户将是只读的 但会有一些 当前是一两个 用户必须能够进行更改 而只读用户也正在使
  • 如何在flutter中制作依赖的多级DropDown?

    我试图使依赖的多级下拉列表首先包含州列表 第二个包含城市列表 所有数据都是从 API 获取的 最初 我加载州下拉列表 当我选择州时 如果我选择城市 则加载该州的城市 成功选择城市 但当我更改州值时 会发生错误 如果第一个下拉列表中发生更改
  • tkinter.TclError:字符 U+1f449 超出 Tcl 允许的范围 (U+0000-U+FFFF)

    我正在尝试使用 tweepy 在 Tkinter 窗口上显示我的 Twitter 时间线 这是代码 import tweepy import tkinter consumer key xxxxxxxxxxxxxx consumer sec
  • 使用 Jupyter 中的浏览按钮上传文件并使用/保存它们

    我碰到这个片段用于在 Jupyter 中上传文件 但是我不知道如何将此文件保存在执行代码的计算机上 也不知道如何显示上传文件的前 5 行 基本上我正在寻找正确的命令来访问文件上传后 import io from IPython displa
  • 无法从 Azure 网站访问 Azure DB 服务器

    我使用 Visual Studio 2013 Web Express 创建了一个 MVC Web 应用程序 我已在 Azure 中为我的计算机启用了防火墙规则 并且我可以从本地计算机连接并远程调试我的网站 我让用户 SQL Server 对
  • 在 .NET C# 中以编程方式将 SVG 嵌入 PDF [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有谁知道如何使用 C 创建 pdf 并在该 PDF 中添加 SVG 文档 itextsharp 做不到 感谢这个库 http svg codeple
  • 如何按日期时间字段中的时间进行过滤?

    在模型中 输入 的是日期时间字段 我想查询数据以查找中午 开始时间 和下午 5 00 结束时间 之间进行的所有条目 selected Entry objects filter entered gte start time entered l
  • 错误:原因:无效的流标头:android studio 2.3.1 中的000900D9

    我正在使用 android studio 2 3 1 昨天工作正常但现在它给我一个错误错误 原因 无效的流标头 000900D9此消息抛出自消息 Gradle 同步对话框 以下是我为解决此问题所做的步骤 但对我来说没有任何作用 1 使缓存无
  • ASP.NET TempData 即使在读取后也不会被清除

    我有一个类似于下面的控制器操作 TempData 由我的框架初始化 我注意到 一旦读取该值 TempData 就不会清除该值 如操作 EmployeeUnderAge 中所示 TempData什么时候清除已经读取的数据 public cla
  • HttpLoggingInterceptor 上的应用程序崩溃

    我已经使用 Retrofit 2 okhttp 和 okhttp logging interceptor 创建了项目 private static APIInterface apiInterface private static RestC