如何在 Kotlin 中使用 Retrofit2 获取响应 url?

问题描述 投票:0回答:1

一些背景,我正在尝试做

Spotify's
授权代码流程。现在我一直在请求用户授权。问题是响应主体在 url 中,作为附加到我提供给 Spotify 的回调重定向 uri 的查询参数。因为我正在做的应用程序是一个
Android Kotlin
应用程序(相关部分是它是Kotlin)。

因此我需要以某种方式获取查询参数,但在

Retrofit2
中没有找到任何支持。所以我把注意力集中在获取 url 和解析查询参数的 url 上,但我也不知道该怎么做。
Stackoverflow
上的所有搜索让我了解了如何获取请求 url,但这对我没有任何用处,我想要响应 url。所以问题是我如何使用
Kotlin
实际获得
Retrofit2
中的响应url?或者,如果我能以某种方式直接获取查询参数,那会更好。

最好答案不包含

Call<>
.enqueue()
,因为在 Kotlin 中您不能同时使用挂起函数和
Call<>
并且最好使用挂起。另外,作为个人喜好,我正在使用
Retrofit2
而不是使用
Spotify SDK
,我认为这应该是可能的。

android kotlin retrofit retrofit2 spotify
1个回答
0
投票

你应该仔细看看文档。 您可以从

okhttp3.Response
网络获得的
Retrofit2
具有属性
request
OkHttp3
像下面这样解释这个属性。

发起此 HTTP 响应的线路级请求。这不一定是应用程序发出的相同请求: 它可能被 HTTP 客户端转换。例如,客户端可能会从请求正文中复制诸如 Content-Length 之类的标头。 它可能是响应 HTTP 重定向或身份验证质询而生成的请求。在这种情况下,请求 URL 可能与初始请求 URL 不同。

这意味着您可以像这样从

okhttp3.Response
获得响应查询。

 response.request.url.query
© www.soinside.com 2019 - 2024. All rights reserved.