我有一個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