【问题标题】:Get final request URL without executing the request in Retrofit2/OkHttp3在 Retrofit2/OkHttp3 中不执行请求,获取最终请求 URL
【发布时间】:2018-04-11 03:26:53
【问题描述】:

在我的项目中,我有一个Retrofit2 接口来定义服务器上某些图像的 URL。我还有一个OkHttp3 客户端,它有几个拦截器。

有没有办法获取其中一张图片的完整 URL(在执行拦截器之后),以便我可以将其传递给 Picasso?我在Picasso 中没有找到任何直接采用Call 的方法。

【问题讨论】:

  • 我不知道我是否得到你想要的。您的网络调用是否返回 URL?如果是这样,您需要调用executeenqueue 并将结果(图片网址)传递给毕加索。
  • 您可以添加拦截器来获取url并将其传递给毕加索。
  • @Héctor 我想获取将由executeenqueue 调用的URL,而不必调用它们,并且应用了拦截器。 @Rahul Kumar 你能详细说明一下吗?

标签: android retrofit2 picasso okhttp3


【解决方案1】:

你试过了吗?

call.request().url() 其中callretrofit2.Call 的类型

或者

假设你有以下改造界面:

public interface ExampleService {
    @GET("dummy/{examplePartialUrl}/")
    Call<JsonObject> exampleList(@Path("examplePartialUrl") String examplePartialUrl;
}

有通话请求:

Call<JsonObject> mCall = dummyService.exampleList("partialDummy")

要获取完整的 URL,请使用:

dummyService.exampleList("partialDummy").request().url().toString()

来源:Retrofit 2 check call URL

【讨论】:

  • 这已经是我在做的事情了,但是没有应用拦截器。我有一些拦截器可以为每个请求添加查询参数,但这些不是用这个解决方案调用的。
猜你喜欢
  • 2021-05-12
  • 2018-01-09
  • 1970-01-01
  • 2012-09-27
  • 2020-06-18
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 2018-05-03
相关资源
最近更新 更多