问题标签 [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.
android - 如何使用 Retrofit 和 OKHttp 在下一次请求时使缓存路由无效/强制更新?
我正在使用带有 OKHttp 客户端的 Retrofit 来缓存来自 JSON API 的响应。
这很好用。
但是,如果我在设备上执行导致数据在服务器上更新的操作,我需要一种方法来“使”特定路由“无效”,以确保下次对该数据发出请求时,它是从再次服务器而不是现在过时的缓存版本。
目前,我已经通过在请求的 Cache-Control 标头中使用“no-cache”标志显式调用新路由来解决这个问题,但这会迫使我在需要新数据之前下载新数据,如果采取了多项措施,只是为了使缓存保持最新。
有没有办法可以将我的改造/OKhttp 客户端中的路由/方法标记为缓存已过期,下次请求时需要通过网络强制更新?
android - OkHttp + Picasso + 改造
问题是如何将所有这3 个库组合到一个项目中?
- 让一个 OkHttpClient 作为 Picasso 和 Retrofit 的背景层。
- 如何在 Volley lib 中进行优先级更改。(用于分页)?
android - 使用 Retrofit 在 /system/lib/libssl.so 发生本机崩溃
好吧,这就是我所要做的,我不断收到许多具有相同错误的崩溃报告,我不使用适用于 Android 的 NDK,感到困惑。
android - NoSuchMethodError 如果我使用的是 okhttp 2.0 和最新的改造?
找不到方法 com.squareup.okhttp.OkHttpClient.open,引用自方法 retrofit.client.OkClient.openConnection。
下面是我的 gradle 配置
java - OkHttp 和 Retrofit 异步操作中 ThreadPoolExecutor 使用的差异
OkHttp 2.0.0-RC1 使用DispatcherThreadPoolExecutor
中定义:#getExecutorService
这本质上是Executors#newFixedThreadPool
.
另一方面,平台Executors.newCachedThreadPool
中定义的改造用途归结为:#defaultHttpExecutor
任何人都知道为什么 OkHttp 使用Executors#newFixedThreadPool
和 Retrofit Executors#newCachedThreadPool
?
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?
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 的真正异步使用并获得了一些示例代码?如果没有,我有什么选择?
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 是如何解决这个问题的。
java - 使用 OkHttp 获取 Http 状态码
我正在使用 OkHttp 来获取一些网站的内容。
但是,我无法从响应中获取 Http-Status Code。
我的 Java 代码:
这种方法:
返回以下内容:
有没有办法将 statusCode 获取为整数,或者我需要一个正则表达式来将它从这个 toString() 方法中过滤出来?
android - 我可以在缓存之前以某种方式从 OkHttp 响应中删除标头吗?
Cache-Control: no-cache
我无法控制服务器,它不断地用标题响应我。但无论如何,我都想强制 OkHttp 缓存该响应。
我可以在缓存之前以某种方式从 OkHttp 响应中删除标头吗?