问题标签 [okhttp]

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 投票
4 回答
4945 浏览

android - 如何使用 Retrofit 和 OKHttp 在下一次请求时使缓存路由无效/强制更新?

我正在使用带有 OKHttp 客户端的 Retrofit 来缓存来自 JSON API 的响应。

这很好用。

但是,如果我在设备上执行导致数据在服务器上更新的操作,我需要一种方法来“使”特定路由“无效”,以确保下次对该数据发出请求时,它是从再次服务器而不是现在过时的缓存版本。

目前,我已经通过在请求的 Cache-Control 标头中使用“no-cache”标志显式调用新路由来解决这个问题,但这会迫使我在需要新数据之前下载新数据,如果采取了多项措施,只是为了使缓存保持最新。

有没有办法可以将我的改造/OKhttp 客户端中的路由/方法标记为缓存已过期,下次请求时需要通过网络强制更新?

0 投票
2 回答
6958 浏览

android - OkHttp + Picasso + 改造

问题是如何将所有这3 个库组合到一个项目中?

  • 让一个 OkHttpClient 作为 Picasso 和 Retrofit 的背景层。
  • 如何在 Volley lib 中进行优先级更改。(用于分页)?
0 投票
0 回答
1795 浏览

android - 使用 Retrofit 在 /system/lib/libssl.so 发生本机崩溃

好吧,这就是我所要做的,我不断收到许多具有相同错误的崩溃报告,我不使用适用于 Android 的 NDK,感到困惑。

0 投票
3 回答
9318 浏览

android - NoSuchMethodError 如果我使用的是 okhttp 2.0 和最新的改造?

找不到方法 com.squareup.okhttp.OkHttpClient.open,引用自方法 retrofit.client.OkClient.openConnection。

下面是我的 gradle 配置

0 投票
2 回答
3337 浏览

java - OkHttp 和 Retrofit 异步操作中 ThreadPoolExecutor 使用的差异

OkHttp 2.0.0-RC1 使用DispatcherThreadPoolExecutor中定义:#getExecutorService

这本质上是Executors#newFixedThreadPool.

另一方面,平台Executors.newCachedThreadPool中定义的改造用途归结为:#defaultHttpExecutor

任何人都知道为什么 OkHttp 使用Executors#newFixedThreadPool和 Retrofit Executors#newCachedThreadPool

0 投票
1 回答
142 浏览

java - Android dependencies with libraries

So a library I want to use depends on OkHttp 1.2.1, and I am currently using the newest version of OkHttp 2.0.

This naturally results in a compilation error as multiple dex files are generated for the same classes.

I don't quite want to manually update the library, and I do require the newest version of OkHttp.

Is there a way to somehow prioritize the latest version of OkHttp for any of my classes, and have the library continue to use the old version?

0 投票
1 回答
1182 浏览

android - 如何使用 RoboSpice 进行基于异步 OkHttp 的 REST 调用?

所以我查看了 github 上的robospice okhttpclient-sample,惊讶地发现它们演示了一个同步 HTTP 调用。RoboSpice 自述文件中的第二个要点强调它“异步执行网络请求(在后台 AndroidService 中)”。那么为什么是同步的例子呢?回调在哪里?

我还注意到链接到 RoboSpice 示例的 OkHttp 库是 v1.3,它现在已经很古老了。robospice -okhttp maven库也好不到哪里去——链接到库的 v1.5.4。两者都使用同步OkHttpSpiceRequest.open()函数调用,该函数在 v1.6 中已弃用,并在 v2.0 (RC) 中删除。异步性是在 v1.6 中首次引入的吗?

有没有人在 RoboSpice 中实现了对 OkHttp 的真正异步使用并获得了一些示例代码?如果没有,我有什么选择?

0 投票
2 回答
18384 浏览

java - OkHttp 如何在不使用线程的情况下通过看似同步的 HTTP 连接执行并行 HTTP 请求?

我用OkHttp库做了一些性能测试,发现它很棒。它向http://httpbin.org/delay/1发出了 80 个请求,在我的 HTC One 手机上,它在 4.7 秒内故意为每个请求暂停 1 秒。我查看了代码,并试图找出为什么它如此之快。开发人员(Square Inc)宣传连接池和异步调用,我相信这两者都有助于良好的性能。

我来自 .NET 世界,在 .NET 4.5 中,您拥有一个真正的异步 HTTP 库,其中包含 Async GetResponse-method。通过在等待响应时将线程让给操作系统,您可以释放资源以启动更多 HTTP 请求或其他内容。问题是我看不到与 OkHttp(或我研究过的任何其他 Android 的 HTTP 库)相同的模式。那么我怎么还能在 4 秒内执行 80 个 1-second-request 呢?它不是基于线程的,对吧?我没有启动 80(或 20)个线程?

具体来说,在com.squareup.okhttp.Call.beginRequest()sendRequest中,我看到andgetResponse调用之间没有产生线程:

那么,如何进行 80 个“并行”调用呢?

不需要知道这一点就可以使用这个库,但是异步编程让我很感兴趣,我真的很想了解 OkHttp/SquareInc 是如何解决这个问题的。

0 投票
2 回答
38539 浏览

java - 使用 OkHttp 获取 Http 状态码

我正在使用 OkHttp 来获取一些网站的内容。

但是,我无法从响应中获取 Http-Status Code。

我的 Java 代码:

这种方法:

返回以下内容:

有没有办法将 statusCode 获取为整数,或者我需要一个正则表达式来将它从这个 toString() 方法中过滤出来?

0 投票
2 回答
3266 浏览

android - 我可以在缓存之前以某种方式从 OkHttp 响应中删除标头吗?

Cache-Control: no-cache我无法控制服务器,它不断地用标题响应我。但无论如何,我都想强制 OkHttp 缓存该响应。

我可以在缓存之前以某种方式从 OkHttp 响应中删除标头吗?