Java 如何在改型2.0+;中正确设置注释和查询;?

Java 如何在改型2.0+;中正确设置注释和查询;?,java,android,api,retrofit,Java,Android,Api,Retrofit,我无法让它工作,我尝试了其他几种变体,但仍然得到某种形式的异常 URL query string "q={city}" must not have replace block 公共接口{ @获取(“/weather?q={city}”) 调用getWeather(@Query(“city”)字符串city); } ///// 公共接口{ @获取(“/天气”) 调用getWeather(@Query(“q”)字符串city); } 等等 天气活动 public interface Weath

我无法让它工作,我尝试了其他几种变体,但仍然得到某种形式的异常

URL query string "q={city}" must not have replace block
公共接口{
@获取(“/weather?q={city}”)
调用getWeather(@Query(“city”)字符串city);
}
/////

公共接口{
@获取(“/天气”)
调用getWeather(@Query(“q”)字符串city);
}
等等

天气活动

public interface WeatherInterface {

    @GET("/weather")
    Call<WeatherModel> getWeather(@Query("q") String city);

}
Call Call=weatherInterface.getWeather(““CITYNAME”);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()){
**///第一种变体在此失败**
setText(response.body().getName());
}
**///第二种变体响应失败**
else Log.d(“无响应”、“响应”);
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
日志d(“失败”、“失败”);
}
});
编辑: Log.d(call.request().url().toString(),“call-request-url”)


我也应该分享我的解决方案,我只是记录了调用url。

我忘了在url中添加API密钥。我羞愧地收回了我的问题。

我忘了在url中添加API密钥。我羞耻地收回我的问题。

你可以用这个例子举例:

Call<WeatherModel> call = weatherInterface.getWeather("""CITYNAME""");
        call.enqueue(new Callback<WeatherModel>() {
            @Override
            public void onResponse(Call<WeatherModel> call, Response<WeatherModel> response) {
                if(response.isSuccessful()) {
                    **///FIRST VARIANT FAILS HERE**
                    city.setText(response.body().getName());
                }
                **///SECOND VARIANT FAILES RESPONSE**
                else Log.d("No response", "RESPONSE");
            }

            @Override
            public void onFailure(Call<WeatherModel> call, Throwable t) {
                Log.d("fail", "fail");
            }
        });
公共接口GitHubClient{
@获取(“/users/{user}/repos”)
呼叫转发器(
@路径(“用户”)字符串用户
);
}

有关更多示例,请访问此

您可以使用此示例,例如:

Call<WeatherModel> call = weatherInterface.getWeather("""CITYNAME""");
        call.enqueue(new Callback<WeatherModel>() {
            @Override
            public void onResponse(Call<WeatherModel> call, Response<WeatherModel> response) {
                if(response.isSuccessful()) {
                    **///FIRST VARIANT FAILS HERE**
                    city.setText(response.body().getName());
                }
                **///SECOND VARIANT FAILES RESPONSE**
                else Log.d("No response", "RESPONSE");
            }

            @Override
            public void onFailure(Call<WeatherModel> call, Throwable t) {
                Log.d("fail", "fail");
            }
        });
公共接口GitHubClient{
@获取(“/users/{user}/repos”)
呼叫转发器(
@路径(“用户”)字符串用户
);
}

有关更多示例,请访问此

是的,我查看了文档,但显然我的api密钥丢失了。日志还显示了url调用的外观,如果这对任何人都有帮助的话。是的,我查看了文档,但显然我的api密钥丢失了。日志还显示了url调用的外观,如果这对任何人都有帮助的话。
   public interface GitHubClient {  
        @GET("/users/{user}/repos")
        Call<List<GitHubRepo>> reposForUser(
            @Path("user") String user
        );
    }