【问题标题】:Retrofit error-Missing either @GET URL or @Url parameter改造错误 - 缺少 @GET URL 或 @Url 参数
【发布时间】:2017-02-25 00:44:44
【问题描述】:

我正在开发 Youtube API。 基本网址是<https://www.googleapis.com/youtube/v3/search/>

请求:获取

https://www.googleapis.com/youtube/v3/search?part=snippet&q={search_keyword}&key={API_KEY}

ApiService接口代码-

public interface ApiService {
    @GET("")
    Call<YoutubeResponse> searchVideos(@Query("part") String part,
                                   @Query("q") String q,@Query("key") String apiKey);
}

错误:java.lang.IllegalArgumentException:缺少@GET URL 或@Url 参数。 在代码行中

Call<YoutubeResponse> call=service.searchVideos("snippet",s, URLConstants.Youtube_API_KEY);

我是初学者。请帮忙!

【问题讨论】:

    标签: android retrofit retrofit2


    【解决方案1】:

    使用https://www.googleapis.com/youtube/v3/ 作为您的基本 URL,然后在您的服务方法上声明 @GET("search/") 在语义上更正确。

    也就是说,如果您真的希望您的基本 URL 是完整路径,您可以使用 @GET(".") 声明您的最终 URL 与您的基本 URL 相同。

    【讨论】:

    • 我喜欢那个“。”
    • 虽然在调用中声明路径肯定会更令人满意,但在某些情况下,整个路径会在环境之间发生变化,在基本 url 中声明它是有意义的。
    • 哇!我的网址是omdbapi.com/?s=starwar。谢谢
    • @GET(".") 帮助了我。谢谢@Jake
    • 为什么要加“.”而不是什么都不加??看起来很混乱
    猜你喜欢
    • 2018-06-19
    • 1970-01-01
    • 2023-03-03
    • 2019-10-31
    • 2016-12-06
    • 2019-06-03
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    相关资源
    最近更新 更多