如何将arraylist传递给google cloud端点?它似乎不起作用。
编辑开始---- 以下是以arraylist作为输入的端点的签名
public CollectionResponse<String> listDevices(@Named("devices") ArrayList<String> devices)
然而,当我迭代这个arraylist时,我将所有记录压缩成一个。所以即使我传递10个字符串,我的端点只有一个。
编辑结束----
我在某处读到了我应该为arraylist创建一个包装器实体然后传递它。
编辑开始---- 所以我创建了包含arraylist的实体
@Entity
public class DEviceList {
ArrayList<String> devices;
}
并将签名修改为 -
public CollectionResponse<String> listDevices(DeviceList devices)
是否可以从客户端传递DeviceList的对象,即使它不是@Named?你能提供语法吗? 我的理解是,因为它是一个实体,它不能被@Named,所以在调用时我需要注入它。 但谷歌只允许三种注入类型 - 1. com.google.appengine.api.users.User 2. javax.servlet.http.HttpServletRequest 3. javax.servlet.ServletContext
因此上述签名不起作用。
所以我将签名更改为 -
public CollectionResponse<String> listDevices(HttpServletRequest request)
在里面,我可以将实体作为
DeviceList deviceList = (DeviceList)request.getAttribute("deviceList");
但是我不确定如何从android客户端调用此端点? 我如何使用HTTPServletRequest传递实体对象?
编辑结束----
我该怎么做?有谁能引用一个例子?
答案 0 :(得分:1)
你说出问题的方式,似乎呼叫无声地失败了。那不可能。您必须收到某种异常或登录某处可以帮助您更好地识别问题。你可以read this article在云端点API和android上刷新。
如果您在将客户端的对象的arraylist传递给API时遇到问题,我建议您检查以下内容:
如果检查日志/错误消息的提醒或此答案中的任何其他信息有助于您解决问题,请务必接受,但不能先编辑您的帖子以解释您如何解决问题。