java改进BaseUrl和API
我正在学习如何使用改装库,但是我遇到了一个小问题
所以我设置了所有内容并运行了我的项目,但首先我发现了以下错误:
Caused by: java.lang.IllegalArgumentException: baseUrl must end in /:
所以我添加了“/”,但后来我意识到它不仅仅是这个,我应该只保留baseUrl,并将api添加到我创建的接口中
我试图以不同的方式添加api,但没有成功
以下是一些代码:
改装BaseUrl:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.nytimes.com/svc/movies/v2/critics/full-time.json?api-key=abcdefghijklmnop")
.addConverterFactory(GsonConverterFactory.create())
.build();
起初我像上面那样使用它,但经过一些研究,我发现我必须离开baseUrl,通过接口传递地址的另一半
接口-
public interface ConnectAPI {
@GET("results")
Call<List<Reviewers>> getReviewers();
}
我很高兴能得到一些帮助, 谢谢
# 1 楼答案
正如Gabe Sechan所说,在进行改造时,您需要为所有api调用设置一个相同的基本url,然后在每个端点的基础上附加url的其余部分。如果你把你的代码改成下面的,你应该很好
和{}到
# 2 楼答案
基本URL应该是要在该接口上进行的所有查询的根。其余部分应该是实际API接口上URL的一部分。因此,对于您的示例,基本URL可能应该是“https://api.nytimes.com/svc/movies/v2/“。虽然是其中的任何子集,例如”https://api.nytimes.com/只要接口拥有路径的所有其余部分,也可以工作。基本上,当发出实际的HTTP请求时,查询的URL会连接到基本URL的末尾
# 3 楼答案