问题标签 [okhttp3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7950 浏览

android - Request(okhttp3.Request.Builder) 在 okhttp3.Request 中有私有访问权限

我只是想使用 okhttp 下载一些字节数据,但是在我完成代码之前,我遇到了一个问题,android studio 报告错误,说“请求(okhttp3.Request.Builder)在 okhttp3.Request 中有私有访问权限“,我的代码被咆哮了,我该如何解决?

这只是我的一些代码,我只是按照http://square.github.io/okhttp/上的示例,我没有看到任何区别,但它只是报告了这个错误

0 投票
1 回答
1469 浏览

android - Android上的OkHttp线程优先级背景

在 Android 上建议设置线程优先级,THREAD_PRIORITY_BACKGROUND以避免其他线程干扰主线程。OkHttp 使用多个线程池(调度程序、连接池等),但我看到它不担心线程优先级。例如,NetworkDispatcher#84中的 Google Volley 库使用THREAD_PRIORITY_BACKGROUND

OkHttp 是否有理由不设置线程优先级?在Android上使用它时,我应该用将线程优先级设置为后台的线程工厂替换线程工厂吗?

0 投票
2 回答
4658 浏览

android - java.lang.NoClassDefFoundError:解析失败:Lokhttp3/MediaType;

使用 okhttp-3.0.1.jar 会导致崩溃:

okhttp-3.0.1.jar 工作正常并且缺少这个类。请帮助解决。

0 投票
6 回答
23272 浏览

android - “return response.body().string()”为空,带有 okhttp3

我创建了以下类:

它曾经在我将一些数据写入服务器上的 MySQL 的活动中工作。当我从以下代码中调用它时,我得到一个空响应!

这是我在 logcat 中得到的

所以总结一下,在我的 PostJSON 类中,我将正确的结果写入 System.out。然后返回它。但是响应是空的。我不知道为什么。

0 投票
1 回答
1465 浏览

java - Retrofit v2 Call.cancel() 是否删除回调?

我在Retrofit v2 API Spec中读到,在从自定义改造接口返回的 Call 类上调用 cancel() 方法应该将传入的 Callback 设置为 null。

cancel() 在收到响应后是无操作的。在所有其他情况下,该方法会将任何回调设置为 null(因此如果匿名声明,则释放对封闭类的强引用)

通过代码我看不到调用取消时回调被显式设置为空。我可以看到OkHttpCall类中引用了回调(尽管没有显式存储)。调用 cancel 将依次调用 RealCall 类上的 cancel,该类负责取消的 Http 端,但不关心 AsyncCall 类中存储的回调(它放在 Dispatcher 类中的 readyAsyncCalls 和 runningAsyncCalls 队列中。它对我来说是不熟悉的代码,所以我可能会遗漏一些东西。

有人可以自信地确认在我的调用对象上调用 cancel() 将删除对我传入的回调的引用,这样我就不会泄漏内存吗?

简化代码示例:

0 投票
2 回答
2335 浏览

android - 如何使用 OkHttp 下载多个文件?

我需要使用 OkHttp 库下载多个文件。在所有下载完成后,我需要通知用户。

我知道如何使用 OkHttp 下载一个文件。这是代码:

如何下载所有文件,而不仅仅是一个?

0 投票
1 回答
277 浏览

android - 将 Android OkHttp3 与 NewRelic 集成

我正在使用 OkHttp 版本 3.1.2(无法更改版本导致最新的毕加索和改造库)并通过教程 NewRelic 库版本 5.4.1 进行设置(如教程中所述,它支持 okhttp2.1+)。NewRelic 成功处理了崩溃,但它不处理 http 事务。“Harvester”总是记录“发送 0 个 HTTP 事务”。但是当尝试使用 NewRelic.noticeHttpTransaction 时,它会发送分析。

如何将 okhttp3.1+ 与 NewRelic 绑定,可以吗?或者我做错了什么,因为我认为 NR 应该自动处理 http 请求/错误?

0 投票
1 回答
791 浏览

android - 使用 OkHttpClient 发送 cookie

我正在使用 Okhttp3 来发出 http get/post 请求。

PersistentCookiejar即使应用程序关闭,我也会使用持久化 cookie,然后再重新启动。

但是,当我进行 HTTP 调用时,OkHTTpClient 不会将 cookie 从 android 设备发送到 Web 服务器。不知道如何解决它,如果 http 客户端没有在每个 http 请求上发送 cookie,我认为持久 cookie 没有任何意义。

这是我用来初始化 http 客户端以及我如何发出 http 请求的代码。

0 投票
5 回答
45537 浏览

android - 向客户端请求 OkHttp 添加 cookie

所以我开始使用 Okhttp 3 并且网络上的大多数示例都在谈论旧版本

我需要在 OkHttp 客户端请求中添加一个 cookie,它是如何使用 OkHttp 3 完成的?

在我的情况下,我只是想将它静态添加到客户端调用而不从服务器接收它

0 投票
0 回答
450 浏览

java - Retrofit2 JSON 响应正文未正确解析

我在 Retrofit2 中将自定义类实现为响应 JSON 时遇到问题。

调用成功,当我记录正文(使用 HttpLoggingInterceptor)时,我可以看到 JSON 已正确获取。

唯一的问题是它没有解析到我创建的自定义类中。

这是我的服务生成器:

这是服务接口:

这就是我真正称呼它的地方:

我觉得我做的一切都是对的,有什么解释为什么 GsonConverter 没有将响应转换为我的自定义类(UserResponse)?

为了让自己更清楚,这里是实际的 JSON 响应(使用 Postman):

提前致谢!


编辑1:

对于任何有兴趣的人。

我刚刚发现,如果我使用字符串作为返回类型,它实际上会将所有数据写入字符串。

所以这意味着错误在于转换。我认为在某个地方我在 GSONBuilder 上犯了一个错误。