Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改装-使用相同的密钥发送动态查询_Java_Android_Retrofit_Retrofit2 - Fatal编程技术网

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);