Java 改装-使用相同的密钥发送动态查询
这是我的界面:Java 改装-使用相同的密钥发送动态查询,java,android,retrofit,retrofit2,Java,Android,Retrofit,Retrofit2,这是我的界面: public interface ServerCalls{ @GET Call<List<Integer>> searchNames(@Url String url, @QueryMap Map<String, String> options); } } 我怎么做?(不带番石榴库)您可以使用@Query(“name”)列表名称 例如: public interface Api {
public interface ServerCalls{
@GET
Call<List<Integer>> searchNames(@Url String url, @QueryMap Map<String,
String> options);
}
}
我怎么做?(不带番石榴库)您可以使用@Query(“name”)列表名称
例如:
public interface Api {
@GET("/getLastName")
Call<ResponseBody> getLastName(@Query("name") List<String> names,
@QueryMap Map<String, String> otherUniqueKeys);
}
List<String> names = new ArrayList();
names.add("yoni");
names.add("albert");
// create an instance of Api interface with retrofit
Api api = ...
api.getLastName(names).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
公共接口Api{
@获取(“/getLastName”)
调用getLastName(@Query(“name”)列表名,
@查询映射(其他唯一键);
}
列表名称=新的ArrayList();
名称。添加(“yoni”);
名称。添加(“阿尔伯特”);
//通过改造创建Api接口的实例
Api=。。。
api.getLastName(names.enqueue(newcallback()){
@凌驾
公共void onResponse(调用、响应){
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
有关链接的更多详细信息。制作如下界面
@POST
Call<Response> dynamicCall(
@Url String url,
@Body Object object);
我希望这将对您有所帮助。您不能更改API吗?这是一个奇怪的设计,如果它需要一个名称列表,那么它应该是一个数组,例如,在Body中。可能是重复的,但所做的是这个输出:name=yoni,albert我需要:name=yoni&name=albert我在改装2中使用了您可以告诉我如何将数据添加到列表名称中吗?我使用QueryMap是因为我需要动态键,所以无法使用@QueryMap这可能是@QueryMap吗?
public interface Api {
@GET("/getLastName")
Call<ResponseBody> getLastName(@Query("name") List<String> names,
@QueryMap Map<String, String> otherUniqueKeys);
}
List<String> names = new ArrayList();
names.add("yoni");
names.add("albert");
// create an instance of Api interface with retrofit
Api api = ...
api.getLastName(names).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
@POST
Call<Response> dynamicCall(
@Url String url,
@Body Object object);
dynamicCall(url,Object);