Обновления и публикации 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; }
}

0 ответов

Другие вопросы по тегам