我正在尝试将int []作为参数传入我的端点(使用Objectify)。这是端点方法:
@ApiMethod(name = "getThemeDetailsFromList")
public CollectionResponse<Theme> getThemeDetailsFromList(@Named("ids") int[] ids) {
List<Theme> execute = new ArrayList<>();
for (int id:ids) {
execute.add(getTheme(id));
}
return CollectionResponse.<Theme> builder().setItems(execute).build();
}
以下是我的应用程序中的代码部分:
Set<String> themes = tm.getFavoritesByID();
List<Integer> ids = new ArrayList<>();
for (String id: themes) {
ids.add(Integer.parseInt(id));
}
results = endpoint.getIconThemeDetailsFromList(ids).execute();
我尝试将int []作为id传递,但它不会让我只接受ArrayList。当我运行应用程序时,我收到以下返回错误:
> com.google.api.client.googleapis.json.GoogleJsonResponseException: 400
> Bad Request { "code": 400, "errors": [
> {
> "domain": "global",
> "location": "ids[0]",
> "locationType": "parameter",
> "message": "Invalid integer value: '3,1,5'.",
> "reason": "invalidParameter"
> } ], "message": "Invalid integer value: '3,1,5'." }
ids是{3,1,5}的arraylist。我不知道为什么它让我传入一个列表,为什么它给我返回错误。
答案 0 :(得分:2)
所以我最终创建了一个符合我要求的新课程:
public class BatchThemeRequest {
private int[] ids;
public void setIds(int[] ids) {
this.ids = ids;
}
//code here
}
我编辑了后端:
public CollectionResponse<Theme> retrieveBatchWithCursor(BatchThemeRequest batchThemeRequest) {
// code here
}
在应用程序中,我将创建一个新的BatchThemeRequest并将我的int []添加到via setIds();