java - 为什么我收到“属性值必须是常量”错误?

标签 java android retrofit2

我尝试将当前日期添加到 HTTP @GET 中的 url 字符串,但收到属性值必须为常量 错误。我不明白为什么?我正在使用改造 2。

public interface API {

  final Date c = new Date();
  final String date=new SimpleDateFormat("yyyy-MM-dd").format(c);

  static final String url = ("/modules/json/json/Index?costNumber=0417&firstDay="+date+"&language=fi");


  @GET(url)
  Call<Menu> getMenuName();

最佳答案

弗雷德的答案是适合您的情况的正确解决方案。不过,出于完整信息的考虑,Retrofit 2 确实支持动态 URL。您可以将其作为 @Url 参数传递给您的接口(interface)方法,例如:

@GET
Call<ResponseBody> getMenuName(@Url String url);

您无需在 @GET 注释中指定 URL。 Retrofit 将从传递的 url 中获取值。这使您可以选择从动态 URL 请求数据,这在某些情况下很有用。

您可以在这里找到更多信息:https://futurestud.io/tutorials/retrofit-2-how-to-use-dynamic-urls-for-requests

关于java - 为什么我收到“属性值必须是常量”错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41720327/

相关文章:

Java Gson - 从 JSON 树获取特定值

java - 如何将分配的字符串值与整数值相关联?

android - 如何为所有屏幕尺寸设置背景图片?

Android:如何通过通知下拉菜单检测何时更改设置?

rx-java - 使用 RxJava 重复改造调用,直到条件有效

java - 如何在Java中创建图像对象?

Java8 收集 map

java - 任务“:app:compileDebugJavaWithJavac”执行失败

java - Android studio - 带Retrofit2的外汇汇率API,无法运行应用程序

java - Retrofit 不会调用 onReponse 和 onFailure