okhttp 相关问题

适用于Android和Java应用程序的HTTP + HTTP / 2客户端。

通过改造在运行时处理 http 请求路径更改

我现在有这个api用法: App.API.foo(mapOf("a" 到 a, "b" 到 b)).enqueue(responseHandler) // 我的 API 类 @POST(“/foo-v1”) fun foo(@身体图:地图 我现在有这个api用法: App.API.foo(mapOf("a" to a, "b" to b)).enqueue(responseHandler) // my api class @POST("/foo-v1") fun foo(@Body map: Map<String, String>): Call<Response> 现在我有了新的 api 路径:"/foo-v2" 和在运行时定义的新 baseurl。 在运行时进行更改的最佳方法是什么? 我认为的选项:将 @Path("version") version: String 添加到 foo 函数将像这样: @POST("/foo-{version}") fun foo(@Body map: Map<String, String>, @Path("version") version: String): Call<Response> 对于一个请求来说还可以,但如果更改了很多请求,那就不太好了。 另一个问题,当某些请求还需要添加新路径时可以做什么,例如@POST("/auth/foo-{version}") 我最初发表评论是因为时间紧迫,但我想提供一些快速代码来说明这一点。 提供这样的服务: interface ChangeUrlService { @POST(".") fun foo( @Header("url") url: String, @Body map: Map<String, String> ): Call<Response> } 您可以使用拦截器在运行时设置端点 url,该拦截器应用于您的 OkHttpClient.Builder。 class ChangeUrlInterceptor: Interceptor { override fun intercept(chain: Interceptor.Chain): Response { // This request is has "." as the url. We want to change it! val request = chain.request() /** * Get the url argument via the headers. I exit early here * with the original request going through the network but you * can throw an exception or whatever. */ val url = request.header("url") ?: return chain.proceed(request) val body = request.body // dont forget to apply your request body /* * Here's where you create your new request at runtime! * / val newRequest = Request.Builder() .url(url) .headers(request.headers) .apply { if(body == null) this else post(body) } .build() return chain.proceed(newRequest) } }

回答 1 投票 0

如何在Android中使用okhttp库向api(http post)添加参数

在我的 Android 应用程序中,我使用 okHttp 库。如何使用 okhttp 库向服务器(api)发送参数?目前我正在使用以下代码访问服务器现在需要...

回答 9 投票 0

如何在 kotlin 中使用 OkHttp 编码 url?

我正在尝试通过 Bitfinex 提供的公共 API 端点获取历史 Bitfinex 蜡烛数据。尝试在 kotlin 中使用 OkHttp 但仍然得到空结果。我猜是编码问题...

回答 1 投票 0

Android 11 - 无法在 AndroidPlatform 上提取信任管理器,sslSocketFactory 是类 com.android.org.conscrypt.OpenSSLSocketFactoryImpl

Android 11 - 无法在 AndroidPlatform 上提取信任管理器,sslSocketFactory 是类 com.android.org.conscrypt.OpenSSLSocketFactoryImpl 问题仅适用于 Android 11 设备

回答 1 投票 0

Okhttp 缓存系统不工作 504 Unsatisfiable Request (only-if-cached)

我想缓存200个请求,并在没有互联网/遇到一些api错误时从缓存中检索数据,但无法从缓存中获取任何数据: 我的网络拦截器 覆盖有趣的拦截(链:

回答 1 投票 0

出现错误 使用“receivedResponseAtMillis(): Long”是一个错误。移至 okhttp 中的 val

更新 okhttp 4.12.0 后出现此错误。这是我遇到问题的下面的代码。 有趣的retrofit2.Response<*>.responseTimeMs(): Long = 原始().运行{

回答 1 投票 0

OkHttp 返回不可读的字符

我正在向服务器发送请求并获取 Collection + Json 响应。 PostMan 中的一切都是完美的。 但是当我使用 OKHTTP 在代码中做同样的事情时,我得到了一些不可读的信息

回答 2 投票 0

调试 okhttp-eventsource 连接日志

我正在编写一个玩具项目来接收维基媒体事件并将其传输到卡夫卡。我使用 okhttp-eventsource 连接到 wikimedia。但我正在收到任何数据。我很难调试这个问题...

回答 1 投票 0

类 org.jboss.resteasy.plugins.server.servlet.HttpServlet30Dispatcher 未实现 jakarta.servlet.Servlet

我正在更新项目中的依赖项。以下是我正在使用的相应的 undertow 和 Resteasy 依赖项。 io.undertow 我正在更新项目中的依赖项。以下是我正在使用的相应的 undertow 和 Resteasy 依赖项。 <dependency> <groupId>io.undertow</groupId> <artifactId>undertow-core</artifactId> <version>2.3.12.Final</version> </dependency> <dependency> <groupId>io.undertow</groupId> <artifactId>undertow-servlet</artifactId> <version>2.3.12.Final</version> </dependency> <dependency> <groupId>io.undertow</groupId> <artifactId>undertow-websockets-jsr</artifactId> <version>2.3.12.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-undertow</artifactId> <version>3.15.6.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>3.15.6.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-client</artifactId> <version>3.15.6.Final</version> </dependency> 运行应用程序时出现以下异常 线程“main”中的异常 java.lang.IllegalArgumentException: UT010009: 类型类 org.jboss.resteasy.plugins.server.servlet.HttpServlet30Dispatcher 的 Servlet ResteasyServlet_ 未实现 jakarta.servlet.Servlet 在 io.undertow.servlet.api.ServletInfo.(ServletInfo.java:76) 在 io.undertow.servlet.Servlets.servlet(Servlets.java:102) 在 com.alacriti.serverless.undertow.server.ServicesServer.doUndertowRespAppDeployment(ServicesServer.java:600) 在 com.alacriti.serverless.undertow.server.ServicesServer.createDeploymentInfoAndAddRestApps(ServicesServer.java:574) 在 com.alacriti.serverless.undertow.server.ServicesServer.start(ServicesServer.java:365) 在 com.alacriti.serverless.undertow.server.ServicesServer.main(ServicesServer.java:1044) 有人可以帮我解决这个问题吗? 预先感谢。 您需要升级您正在使用的RESTEasy版本。最新版本是6.2.8.Final。 3.15.x 版本实现了 Jakarta REST 2.1 规范,该规范是 Jakarta EE 8 的一部分。

回答 1 投票 0

使用JMeter模拟接收类似于okhttp3的websocket广播

我正在开发 Android 应用程序,我们使用 okhttp3 打开与后端的 websocket 连接。有 2 个主要的 websocket: 用于向后端请求信息的请求-响应机制。

回答 1 投票 0

okhttp缓存控制无缓存处理策略

我有一个关于 okhttp 中缓存支持的问题。这是一个复杂的问题,所以我将其分为两部分。 1.请求的无缓存处理策略 我注意到请求头Cache-C...

回答 1 投票 0

无法让OkHttp的response.body.toString()返回字符串

我正在尝试使用 OkHttp 获取一些 json 数据,但无法弄清楚为什么当我尝试记录 response.body().toString() 时我得到的是 Results:: com.squareup.okhttp.Call$ RealResponseBody@41c16aa8 ...

回答 10 投票 0

如何使用OkHttp在Android上实现cookie处理?

使用 Square 的 OkHttp https://github.com/square/okhttp,我该如何: 获取服务器返回的cookie 存储 cookie 以供即将到来的请求使用 在后续请求中使用存储的 cookie 你...

回答 4 投票 0

Retrofit 2 示例教程但 GsonConverterFactory 显示错误“无法解析符号”

我正在尝试遵循Retrofit的2教程,但是在这部分代码中,有一个GsonConverterFactory显示错误无法解析符号: 公共类服务生成器{ 公共静态

回答 9 投票 0

如何创建OkHttp所需的虚拟ResponseBody对象?

我现在正在传递 null,这会导致崩溃! 请参阅:val 响应:Response = Response.error(-1, null) 代码: 暂停乐趣 getReviewData() = getResult { 尝试 { ...

回答 4 投票 0

javax.net.ssl.SSLHandshakeException:java.lang.IllegalArgumentException:toASCII输入无效:ip_nbae7bac35.kodrive.xyz

这个异常有解决方法吗?在github上查看这个问题,听起来这可能是一个android bug,关于主机名有下划线字符之类的东西。 这...

回答 4 投票 0

OkHttp Cookie 的域以点开头

在 Xamarin 应用程序中,我们在 Android 上遇到一个问题,如果请求包含域以点开头的 cookie,则 OkHttp 无法发送请求。 例外:java.lang。

回答 1 投票 0

改造:如何在没有内容编码的情况下解析 GZIP 响应:gzip 标头

我正在尝试处理 GZIP 的服务器响应。响应带有标头 内容类型:application/x-gzip 但没有标题 内容编码:gzip 如果我添加该标题...

回答 3 投票 0

如何修复 Android .aar 项目中的“java.lang.NoClassDefFoundError”

我构建了一个 android .aar 库,我正在尝试将其与其中一个项目集成。当应用程序尝试打开 .aar 库的初始屏幕时,我使用改造进行 API 调用...

回答 4 投票 0

OKhttp Kotlin Android 中的自签名证书

我正在为一个具有自签名 SSL 证书的 Android Kotlin 项目工作。 我使用 Okhttp 与服务器连接,但当尝试访问服务器 IP 时我的应用程序崩溃,错误提示我需要自行...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.