问题标签 [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 - 是否可以在 OkHttp 2.0 中禁用以下重定向?
在 Android 中,我想使用新的 OkHttp 2.0 来请求一些 URL,但我想更多地控制重定向。我已经找到了启用或禁用遵循 HTTPS → HTTP 或 HTTP → HTTPS 重定向的选项,但我不想遵循任何重定向,因此我可以尽快更新我的 GUI,并选择是否遵循它们应用逻辑。我没有看到这样做的选项。有可能吗,如果可以,我该如何实现?
android - OkHttp + Retrofit libssl 以两种方式崩溃 SSL 身份验证
OkHttp:2.0.0-RC1,改造:1.5.1。
我正在创建 okHttp 客户端,如此处所述:NoSuchMethodError 如果我使用的是 okhttp 2.0 和最新的改造?并设置我自己的,并像这样SSLScoketFactory
初始化SSLContext
当我尝试建立双向身份验证 SSL 连接时,每次应用程序崩溃并显示以下日志:
我在这里看到过关于这个问题的讨论:https ://github.com/square/okhttp/issues/184 ,但我认为它已在 2.0.0 中修复。(此外,我使用的是我自己的 SSL 上下文,而不是默认的)。
我已经尝试过URL.setURLStreamHandlerFactory(new OkHttpClient());
(OkHttp 1.6.0),但它也没有帮助。
我也读过这个:https ://code.google.com/p/android/issues/detail?id= 35326,但那里没有有用的信息。
我做错了什么,还是 OkHttp 仍然有问题SSLContext
?
@编辑
HTC ONE S (S4) 4.1.1 库存
@edit2
现在不确定是否真的是okHttp故障。我创建密钥库的方式(或向其中添加密钥)有问题。此时我的信任库在 res/raw 中作为 .bks 文件,并且我的密钥库在运行时动态创建:
将密钥保存到密钥库:
但是当我在 android 应用程序之外创建我的密钥库时,使用 openssl 工具并将其存储在 pkcs12 密钥库中,一切正常!
@edit3
在 android 4.1.2 + okHttp 上不会崩溃(请参阅上面链接的 code.google[...] 的讨论),但我有以下错误说键值不匹配
@edit4
好的,现在我知道出了什么问题。在创建 ma 证书链以将密钥保存到密钥库时,我不必使用 rootCA(用于签署我的证书)。现在我的Certificate
数组链只包含一个证书。
上面的代码正在工作,我已经改变了所有不好的行!
但是,仍然不知道为什么 okHttp 崩溃了。
@edit5
如果密钥/证书密钥库有任何问题,不会抛出错误,让我保存它的内容。但是当密钥库条目不正确时,okHttp 会崩溃。
android - 如何使用 Square OKHTTP 固定证书?
我想我需要创建一个新的 SSL 套接字工厂?另外,出于显而易见的原因,我不想使用全局 SSL 上下文 ( https://github.com/square/okhttp/issues/184 )。
谢谢!
编辑:
从 okhttp 2.1.0 开始,您可以非常轻松地固定证书。
请参阅此处的源代码以开始使用
android - HTTP Post 仅适用于默认 HttpClient,不适用于 OkHttpClient
我正在开发一个项目,该项目需要我向 http://sagecell.sagemath.org/kernel发送一个帖子请求(只是一个帖子,没有数据)以及两个额外的标头,Accept-Encoding:identity 和accepted_tos:true .
如果像这样使用默认的 httpClient,这可以正常工作:
但是,如果我想使用 OkHttpClient 使用相同的东西,它会给我一个 403 错误:
这与 Ion 甚至 HttpUrlConnection 等库的情况相同,只有 Apache 客户端似乎可以工作。
任何关于为什么这不起作用的答案将不胜感激。
java - 如何使用 okhttp 关闭 HTTP 连接?
应该如何告诉 OkHttp 在请求完成后应该关闭与 HTTP 服务器的连接?
假设我使用以下代码向 google.com 发出请求
通过使用“连接:关闭”,我可以让远程服务器发送一个 FIN(如果我不这样做,远程服务器就会挂起等待新请求)。尽管如此,在客户端没有产生 FIN,并且连接显然保持半打开状态一段不确定的时间。
android - Retrofit 在 OKHttp 2.0 的类路径错误中检测到不支持的 OkHttp
我在我的项目中使用Retrofit-1.6.0
+ 。okhttp-2.0.0-RC1
当我运行项目时,我得到了错误。
有人知道如何解决这个问题吗?
android - Picasso 在类路径上检测到不受支持的 OkHttp
我正在使用 Picasso 2.3.2 和 okhttp 1.5.4
最初我得到这个 RTE:
然后我用 com.squareup.okhttp:okhttp:1.6.0 更新了 pom(运行 mvn clean install,在 IntelliJ 中重新导入了 maven),但崩溃仍然发生。
有人知道如何解决这个问题吗?
android - 如何防止 Retrofit 自动遵循 302
我尝试在 Android 上使用 Retrofit 进行身份验证调用。该调用将 302 返回到成功或失败页面。最初的 302 响应带回了一个会话 cookie,它需要在成功时维护身份验证,但是在我有机会使用 cookie 之前,Retrofit 会自动将请求交给重定向 url。
有没有办法防止跟随重定向?或者有没有办法在 Retrofit 上编写一个响应处理程序,可以在进行第二次调用之前添加适当的标头?
android - OkHTTP 和 Picasso 不能一起运行
我在我的项目中使用 Picasso 库来加载图像并缓存它们。它运行良好,没有任何问题。但是,当我尝试使用 OkHttp 库与我的服务器进行数据通信(JSON 通信)时,Picasso 会抛出异常。
我使用以下罐子:okhttp-2.0.0-RC2、okio-1.0.0、picasso-2.2.0。当我添加这些 jar 后运行我的项目时,它会崩溃并显示以下内容:
我添加了 okhttp 只是为了使用以下方法:
上面的代码没有任何问题。然而,使用 Picasso 库并且曾经完美运行的代码开始抛出以下异常:
我的班级路径:
如果我删除 okhttp-2.0.0-RC2、okio-1.0.0、Picasso 行。
为什么会这样?如何同时使用两个库?
java - 是什么导致 okhttp 和 spdy 出现“java.io.IOException:流已重置:CANCEL”?
我正在试验 OKHttp(版本 2.0.0-RC2)和 SPDY,IOException: stream was reset: CANCEL
在一些初步测试中看到了很多,可能是所有请求的 10% 或更多。据我所知,在使用 Apache HttpClient 和常规 https 时,我们没有看到任何等效问题。我很确定当 SPDY 被禁用时,我们也看不到任何与 OkHttp 等效的东西(client.setProtocols(ImmutableList.of(Protocol.HTTP_1_1))
),但我还没有做足够的测试来保证 100% 的自信。
这个先前的问题看到了这些异常以及忽略它们的建议,但这似乎很疯狂:我们在从服务器读取数据时遇到异常,因此我们中止了数据处理代码(使用 Jackson)。在这种情况下,我们需要做点什么。当然,我们可以重试请求,但有时它是一个不可重试的 POST 请求,如果我们已经开始从服务器接收数据,那么服务器已经采取了请求的操作是一个不错的选择。
理想情况下,我们可以对客户端和/或服务器进行一些配置,以减少这些异常的发生率,但我对 SPDY 的了解还不够深入,甚至不知道从哪里开始寻找或建议我们的服务器管理员团队开始寻找。
堆栈跟踪,以防有帮助: