我试图隐藏我的API密钥,因此要这样设置我的Retrofit Api接口(interface):



但是,我收到一个错误“属性值必须为常数”。有没有办法解决和访问此字符串?

更新:这是第二次尝试:

private static final String API_KEY = popularmovies.troychuinard.com.popularmovies.BuildConfig.TMD_API_KEY;


public interface ApiInterface {
    @GET("?language=en-US")
    Call<Movies> getImages(@Query("api_key") API_KEY);
}

更新:这是第三次尝试:

下面是我作为URL发出请求时看到的日志记录,可以看出API密钥现在位于URL的末尾,这是不正确的语法:

最佳答案

使用:

@GET("/rest/of/your/path/here?language=en-US")
Call<Movies> getImages(@Query("api_key") apiKey);

您将popularmovies.name.com.popularmovies.BuildConfig.TMD_API_KEY传递到getImages()的位置:
Call<Movies> call=yourRetrofitInterface.getImages(BuildConfig.TMD_API_KEY);

另外,您的@GET批注似乎缺少REST端点的路径(在我的示例中显示为/rest/of/your/path/here)。

07-28 07:53