问题标签 [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 投票
1 回答
3599 浏览

android - HTTP 静态资源永久缓存策略

Effective Android HTTP Jesse Wilson 中提到以下内容:

提供图像等静态资源?使用永久 URL 并让它永久缓存

我正在使用带有特定OkHttp实例的Picasso来获取和缓存图像。我想知道如何设置策略?let it cache forever

我只能考虑Cache-Control: max-stale=用尽可能高的值覆盖 HTTP 缓存控制标头 max-stale ( ),还有另一种(更好的)方法吗?

0 投票
2 回答
2203 浏览

android - 使用 Picasso 和 OkHttp 更新/更改缓存位图

我目前正在使用 Picasso 和 OkHttp 进行位图缓存。我想要做的是检索一个特定的缓存位图,在其上绘制,然后将绘制在位图上的位图放回内存和磁盘缓存中。我的实现非常标准,我只是使用 Target 并将加载的位图添加到驻留在 GridView 中的自定义 ImageView 中。我一直在环顾四周,我似乎无法找到一种方法来做到这一点。这些库甚至支持这样的东西吗?

0 投票
7 回答
95272 浏览

java - 离线时可以使用 OKHttp 进行改造吗?

我正在尝试使用 Retrofit & OKHttp 来缓存 HTTP 响应。我遵循了这个要点,最后得到了这个代码:

这是带有 Cache-Control 标头的 MyApi

首先,我在线请求并检查缓存文件。正确的 JSON 响应和标头在那里。但是当我尝试离线请求时,我总是得到RetrofitError UnknownHostException. 我还应该做些什么来让 Retrofit 从缓存中读取响应?

编辑: 由于 OKHttp 2.0.xHttpResponseCacheCachesetResponseCachesetCache

0 投票
14 回答
212471 浏览

java - 如何使用 OKHTTP 发出 post 请求?

我阅读了一些将 jsons 发布到服务器的示例。

有人说:

OkHttp 是 Java 提供的 HttpUrlConnection 接口的实现。它为编写内容提供输入流,并且不知道(或关心)内容是什么格式。

现在我想用名称和密码的参数向 URL 发布一个正常的帖子。

这意味着我需要自己将名称和值对编码到流中吗?

0 投票
7 回答
81569 浏览

java - how to use okhttp to upload a file?

I use okhttp to be my httpclient. I think it's a good api but the doc is not so detailed.

how to use it to make a http post request with file uploading?

my question is:

  1. how to set part name? in the form, the file should be named file1.
  2. how to add other fields in the form?
0 投票
2 回答
3509 浏览

android - 如何使用 okhttp 禁用 SSLv3 回退

我的 android 应用程序依赖 SNI 来访问正确的服务器,因此它需要 TLS 并且不能与 SSLv3 一起使用。我正在使用 okhttp 和改造,服务器日志表明 TLS 握手突然切换到 SSLv3,并且可能会保持这种方式一段时间,由于缺乏服务器名称指示支持,导致主机名验证重复失败。

我了解在某些情况下(哪些情况?)okhttp 停止使用 TLS 并切换到 SSL 作为后备。但是,在 SNI 的情况下这是不可接受的,有没有办法禁用回退?

示例 apache 日志:

0 投票
3 回答
1749 浏览

android - 尽管有flush(),但OkHttp在上传数据之前缓冲了~800kb

我试图发布图像的上传进度,使用 okhttp 作为我的客户端和 mimecraft 上传它们以打包多部分文件。

我添加了日志以在数据写入套接字时写入字节数(如果我能正确判断,以 4kb 的块)然后上传。

问题是,虽然每次写入一大块数据时我都会在输出流上调用flush,但在将~800kb 写入输出流之前似乎什么都没有上传。一旦达到这一点,它似乎上传了大约 100kb,然后应用程序将另外 100kb 写入输出流(就像它释放的空间并且可以再写一点)并继续。

这样做的结果是(超过 1.2mb 的文件)前 800kb 几乎立即被写入/报告,然后它开始上传(通过 charles 网络软件跟踪),然后将在下一个开始读取/写入/上传 100kb几秒钟,然后一旦我将最后一个字节写入输出流,应用程序报告 100% 的上传已写入。尽管网络客户端仍在上传仍在网络缓冲区中的最后 800kb,但这是正确的,并且它会在那里再上传 5-10 秒,然后完成请求。

有没有人有过这种经验,或者知道这是否是 okhttp 中的常见问题?

干杯

编辑:如果我上传一个小于 800kb 的文件,我测试了大约 250kb 和 500kb,它们都在上传之前立即 100% 写入流,但是 3mb 的图像仍然会上传 800kb,然后以大约 100kb 的块的形式消失,并且每次上传一些内容时,写入循环都会再写入 100kb。

0 投票
0 回答
2104 浏览

android - 毕加索没有从磁盘缓存加载图片

我想从互联网上加载一张毕加索的图片,并且没有连接,从磁盘缓存。缓存写得很好(图片在缓存目录中)。但是在阅读时我得到了这个日志:

我的项目中有改造和 okhttp 请求。这张图片加载了这个代码

结果是没有连接,图片不会加载,但图片在 picasso 的缓存目录中(并且日志显示该消息)。


想法

我认为,如果我为毕加索使用自定义下载,我不必修改我的改造请求标头(RequestInterceptor -> 拦截)。我有很多 POST 和 GET 请求,我想保持原样。


我检查过的一些链接

如何使用毕加索库实现我自己的磁盘缓存 - Android?
https://github.com/square/picasso/issues/237
如何从毕加索的缓存中检索图像?


提前致谢。

0 投票
1 回答
2146 浏览

android - 在公钥基础设施中使用方形 okHTTP 库的 HTTPS/SSL

我需要使用 PKI 实现通过 HTTPS 发送数据的整个过程,如此处所述http://upload.wikimedia.org/wikipedia/commons/9/96/Usage-of-Digital-Certificate.svg

如何使用私钥签署(我真的必须这样做吗?)我的请求,以及如何将证书(我从网络服务收到)添加到它?

我有自己的密钥库(http://nelenkov.blogspot.com/2011/12/using-custom-certificate-trust-store-on.html(非常棒的博客!)),带有 web 服务 RootCA,私钥用于创建CSR 文件和由 web 服务签名的证书(使用 csr)。

我正在使用 robospice + square retrofit + square okHttp(或者可能使用另一个 HTTP 客户端?)来执行请求并拥有我自己的SSLSocketFactory

由于尚未实现 web 服务,我不知道它是否有效,如果有人能告诉我我是否正确,我将不胜感激。

0 投票
2 回答
1512 浏览

java - 通过 OkHttp 创建的 URLConnection 将 useCache 设置为 false

我正在使用Kohsuke GitHub-API从我的 Java(服务器端)应用程序连接到 GitHub,并且我想使用OkHttp缓存来自 GitHub 的响应的能力。当我为它编写测试时,这非常有效,但它在应用程序本身中不起作用,我不知道为什么会这样。我设法将问题追溯到创建 URLConnection 对象时,该对象的 useCache 变量设置为 false,但我不知道为什么。它可能与服务器配置或类似的东西有关吗?

我将不胜感激任何想法,甚至向任何方向轻推,因为坦率地说,我没有任何想法......谢谢

提供者:

测试(作品):

应用程序中使用的服务(不起作用):