>Cell newCell = new Cell();
>newCell.setValue("no way");
>newCell.setColumnId(4303755236665220l);
>
> connection = (HttpURLConnection) new >URL("https://api.smartsheet.com/1.1/row/{row_id}/cells").openConnection();
>connection.setRequestMethod("PUT");
>connection.addRequestProperty("Authorization", "Bearer " + accessToken);
>connection.addRequestProperty("Content-Type", "application/json");
>connection.setDoOutput(true);
>
>
>mapper.writeValue(connection.getOutputStream(), newCell);
>mapper.readValue(connection.getInputStream(), new TypeReference<Result<Cell>>() {});
>
>System.out.println("cell added.");
Это мой Java-код для добавления ячейки в указанную строку.
Он возвращает ошибку: -
"Невозможно выполнить синтаксический анализ запроса. Произошла следующая ошибка: тело запроса должно быть либо объектом JSON, либо массивом JSON. Java.io.IOException: сервер вернул код ответа HTTP: 400 для URL: https://api.smartsheet.com/1.1/row/row_id/cells "
row_id имеет значение Long.
Может ли кто-нибудь помочь?
Похоже, вы используете конечную точку Update Row Cells для добавления значений в свои ячейки. При использовании этой конечной точки API-интерфейс Smartsheet ожидает, что тело запроса будет представлять собой массив ячеек, а не только один объект ячейки.
В вашем случае ваше тело запроса выглядит так:
{"columnId": 4303755236665220l, "value": "no way"}
Если вы хотите обернуть этот объект в массив, как это:
[{"columnId": 4303755236665220l, "value": "no way"} ]
Вы также можете использовать SDK Smartsheet Java. Используя SDK, вам нужно будет сделать только следующие вызовы
List<Cell> cells = new Cell.UpdateRowCellsBuilder().addCell(4303755236665220l, "no way").build();
smartsheet.rows().updateCells({row_Id}, cells);
В качестве дополнительной заметки эта конечная точка недавно устарела, и мы призываем вас использовать конечную точку Modify Row: PUT/sheet/{sheetId}/row/{rowId}
Для этой конечной точки тело запроса будет только слегка изменяться, так как ваш массив ячеек будет обернут в объект строки, например:
{"cells":[{"columnId": 4303755236665220l, "value": "no way"}]}