我有一个API端点方法是这样的:如何通过Google Cloud Endpoints收到<ArrayList>?
@ApiMethod(name = "test")
public TestModel test(@Named("testArray") ArrayList<String> myTest) {
for (String i:myTest){
log.warning("i=="+i);
}
的请求作出这样的:
{
"testArray":[
"ID1",
"ID2"
]
}
然而,当我检查我的日志(也是这引起了我的应用程序的问题) ,我看到
i=="ID1,ID2"
我没怎么期望看到:
i=="ID1"
i=="ID2"
作为输出。它将数组的两个元素放入myTest(0)中。 如何正确填充数组?
伟大的答案,让我澄清几点。 1.请求与上面输入的内容完全相同。我简单地用ID1 ID2取代9位用户ID以用于SO目的。我只在后端工作,前端android对我来说非常神奇,所以我不能说出请求中可能发生的任何扼杀。为了进行调试,我的前端工程师通过冗余发送了他的请求。 2.根据客户端库,我相信他们正在使用它。我们已将我们的项目合并到android studio中。 3.我们正在使用最新的SDK。 你能否提出另一个调试步骤? – Japes
如果你不知道系统是如何工作的,你应该有人打开并管理有关这些系统相关问题的stackoverflow线程。发布的JSON对象更像是想要发送的内容,而不是发送的实际有效内容。什么特定的代码在客户端形成请求?在正确制定请求时,我部署了一个API,其代码与您的预期一致。另外,你有没有设法检查原始的HttpServletRequest对象? – Nick
我会喜欢前端开发人员研究这个问题,但是由于我们找到了解决方法,他们太忙了。 (另外,他们只会说日语)。由于我们即将发布并忙于最终测试,因此我还没有查看需求。发布后,我们会进一步研究这个问题并创建一个补丁。那时我会更新这个主题,因为我个人对此非常好奇。感谢您的关注。 – Japes