val*_*lll 5 android json get retrofit
嗨,我在大多数电话中都使用Retrofit,但在某些情况下,我拥有参数中提供的完整路径。我的网址是这样的http://www.example.com/android.json。此URL已完全提供,因此我必须在运行时对其进行路径设置。我按照此处的建议实施端点 https://medium.com/@kevintcoughlin/dynamic-endpoints-with-retrofit-a1f4229f4a8d, 但在@GET中,我需要能够放置@GET(“”)。这不起作用,因为我收到一条错误消息,说我应该至少提供一个“ /”。如果我添加斜杠,则该URL变为http://www.example.com/android.json/,并且它不起作用,服务器返回禁止访问。我还尝试创建类似于此处https://github.com/square/retrofit/issues/458的自定义GET接口但使用GET且未在接口中提供value方法。然后我得到另一个错误,说值丢失了。基本上,我需要能够提供一个空值或null值,但改型不允许这样做。我该如何解决这个问题?现在,我正在手动执行json请求,但是在这种情况下是否可以使用改造?我需要传递完整的URL,无法执行端点http://www.example.com和@GET(“ / android.json”)。谢谢
您可以使用@GET(“。”)来表示您的URL与基本URL相同。
@GET(".")
Observable<Result> getData(@Query("param") String parameter);
Run Code Online (Sandbox Code Playgroud)
我尝试过这种方法,但对我来说不起作用。
此问题的解决方法是:
//Retrofit interface
public interface TestResourceClient {
@GET
Observable<Something> getSomething(@Url String anEmptyString);
}
//client call
Retrofit.Builder().baseUrl("absolute URL").build()
.create(TestResourceClient.class).getSomething("");
Run Code Online (Sandbox Code Playgroud)
该解决方案的缺点是您必须在getSomething("")方法调用中提供空字符串。
| 归档时间: |
|
| 查看次数: |
3172 次 |
| 最近记录: |