Обновления и публикации Smartsheet работают с Postman, но не с .NET Core Web API.
Когда я помещаю свой токен-носитель, тип содержимого и те же данные в почтальон, я получаю успешные результаты при вызове put / update. Однако при отправке данных через промежуточный проект веб-API .NET Core 5.0 я получаю неверные запросы (получение данных из .NET - это нормально). Есть ли какое-то конкретное поле, в котором я должен искать более подробный ответ об ошибке, кроме общего 400, поступающего из Smartsheets API?
[HttpPut("{sheetId}/rows")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<IActionResult> UpdateSmartSheetRow(long sheetId,
[FromBody] UpdateSheetRow updateObj)
{
string Url = GetSmartSheetUrl();
if (Url == null) return BadRequest();
string BearerToken = GetSmartSheetApiToken();
if (BearerToken == null) return BadRequest();
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", BearerToken);
httpClient.DefaultRequestHeaders
.Accept
.Add(new MediaTypeWithQualityHeaderValue("application/json"));
try
{
HttpResponseMessage response =
await httpClient.PutAsJsonAsync(Url + sheetId + "/rows/", updateObj);
if (response.IsSuccessStatusCode)
{
return Ok(await response.Content.ReadAsAsync<UpdateSheetRowResponse>());
}
return StatusCode(400, response.ReasonPhrase);
}
catch (Exception ex)
{
return StatusCode(500, ex.Message);
}
}
Мои модели:
public class SheetItemCell
{
public long ColumnId { get; set; }
public string Value { get; set; }
public string DisplayValue { get; set; }
}
public class UpdateSheetRow
{
public long Id { get; set; }
public ICollection<SheetCellToUpdate> Cells { get; set; }
}
public class SheetCellToUpdate
{
public long ColumnId { get; set; }
public string Value { get; set; }
}