问题标签 [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 回答
150 浏览

java - 基于 B2B 客户端/服务器 java 的服务中的 Okhttp(高并发)

在我看到的所有示例中,Okhttp 经常在 android 堆栈中使用。

我想在 B2B java 服务中使用它通过 REST 在 2 个服务之间进行通信。

我对高并发环境中的线程安全和 Okhttp 的行为有疑问。

谁能告诉我 Okhttp 是否更适合我的情况,或者我必须使用另一个 http 客户端库?

0 投票
0 回答
1415 浏览

android - 让 OkHttp 接受自签名证书

我成功让服务器使用 JKS 文件形式的证书。HTTPS 在与 Web 浏览器和其他 Web 客户端一起使用时按预期工作。

对于 Android,我的团队使用以下方法说服 OkHttp 接受证书。

使用密钥的代码:

但是,访问该服务会引发以下异常:

java.security.cert.CertPathValidationException: Trust anchor for certification path not found.

我们是否正确完成了证书安装?还是我们面临不同类型的问题?

0 投票
4 回答
12592 浏览

android - 需要改造 2 HTTP 方法注解(例如,@GET、@POST 等)

我的改造配置有什么问题?当我使用 OkHttpClient 添加基本身份验证时出现此错误,但是当我使用没有 Interceptor 的默认客户端时,它正在工作。还是我的 Gradle 依赖项有问题..?

这是我要调用的 API 服务

我的 OkHttpClient 拦截器

这是我的 API 调用

这是我的 Gradle 依赖项

这是我的应用程序 Gradle 文件

我的保镖 我也尝试添加和删除它,但发生相同的错误日志

0 投票
1 回答
892 浏览

java - 添加标头时OKHTTP3拦截超时

您好,我的 okhttp3 拦截器有一个奇怪的错误。添加附加标头时,请求以超时结束。当相同的拦截器执行相同但不添加标头时,它可以正常工作。我的代码是这样的

我拦截的请求发送到另一台服务器,这有什么关系吗?或者这是向 okhttp3 请求添加额外标头的错误方法?

0 投票
3 回答
3992 浏览

android - okhttp3 与改造 2.0.0-beta4

我正在尝试让我的网络类记录传入的 JSON,我想使用来自 OkHttp3 的 HttpLoggingInterceptor。问题是我的改造对象不会从 okhttp3 中获取 OkHttpClient。如果您知道我做错了什么,请告诉我。

摇篮

改造和客户端设置

Android 工作室说改造需要 okhttp.OkHttpClient 而不是 okhttp3.OkHttpClient 但如果使用那个,我不能使用 HttpLoggingInterceptor ...

感谢您的任何回答。

0 投票
3 回答
981 浏览

android - Retrofit2 和 OkHttp3 单请求拦截器

从 OkHttp v3 开始 OkHttpClient 是不可变的,拦截器的列表也是如此。

从 Retrofit 2.0-beta3 开始,它依赖于 OkHttp v3。

在我的应用程序中,我需要解析具有“a=1&b=2&c=3”格式的 Google Analytics Campain 引用者密钥,并将其附加到注册请求 URL。

使用以前版本的改造很容易通过添加

在执行调用和

通话后进行。

无法弄清楚如何使用新版本实现相同的行为。请帮忙。

UPD 1.目标是控制单个请求的请求URL。将字符串附加到末尾只是一个示例。使用@QueryMap 是一个选项,但它需要解析我尽量避免的参数字符串。

0 投票
1 回答
893 浏览

android - 使用 Retrofit/OkHttp 时如何将 Multipart 实体写入文件?

我正在更新最初使用 Apache HTTP 客户端构建的代码,以改用 Retrofit。我遇到问题的代码块将本地应用程序数据库的副本上传到我的服务器。此过程的一部分是使用在 POST 身份验证中发送的内容的 md5。它首先创建多部分实体,然后将其写入一个新文件,以便可以在该文件上制作 md5。

到目前为止我所拥有的:

因此,我获取相同的信息并制作一个可以通过 Retrofit 传递的 RequestBody。看来这应该是我写给 dummyFile 的内容。接下来是将 Multipart 写入 dummyFile 的相同代码,只是它缺少实际写入 fileOutputStream 的重要部分,因为我不知道要使用什么函数。接下来,设置 Retrofit 实例并将所有身份验证信息传递给我的服务生成器。最后拨打电话并将 requestBody 传递给 Retrofit。(未显示 call.enqueue() 的东西)

我缺少什么来完成这项工作?RequestBody 甚至是正确的使用方法吗?

0 投票
3 回答
11102 浏览

android - OKHTTP 3 跟踪分段上传进度

如何在 OkHttp 3 中跟踪上传进度我可以找到 v2 但不是 v3 的答案,就像这样

来自 OkHttp 配方的示例 Multipart 请求

0 投票
1 回答
5468 浏览

android - OkHttp 异步调用:AsyncTask 还是 OkHttp 异步 api?

我对 OkHttp 库不太熟悉,我对如何将它用于异步请求有一些疑问。

对于 Android 编程,我将 android 库用于http,并使用asyncTask进行一些请求。

但是因为我想尝试 OkHttp 库,所以我遇到了一些关于应该使用它的正确方法的“问题”。

例子:

假设您想使用 OkHttp 实现异步请求。我读到 OkHttp 有它自己的异步 api(https://github.com/square/okhttp/blob/master/samples/guide/src/main/java/okhttp3/recipes/AsynchronousGet.java)。

但后来我遇到了这篇文章( Square 的OkHttp。下载进度),其中那个人使用了“旧”的 asyncTask,但使用了 OkHttp 请求(我还在其他论坛上发现人们正在使用带有 OkHttp 的 AsyncTask)。

这有点令人困惑,因为它可以简单地用这段代码来制作,它也可以适用于 POST:

问题:

  1. OkHttp 使用异步请求的正确方法是什么?
  2. 将 AsyncTask 与 OkHTTP 一起使用是一种好习惯吗?
  3. 在哪些情况下我应该使用带有 OkHttp 的 AsyncTask 而不是使用 OkHttp 异步 api?
0 投票
1 回答
24871 浏览

java - OkHTTPClient 代理认证怎么做?

问题:如何向 OkHTTP 添加授权代理。

我知道 OkHTTP 的构建器确实支持代理,尽管我很难设置一个。

我有 IP / 端口 / 用户名 / 密码。

虽然我不知道如何将它们变成Proxy proxy可以在 client.SetProxy() 中使用的。

它似乎过于复杂,我似乎无法弄清楚。任何帮助,将不胜感激。