Я использую .net core web api. в моем классе контроллера API есть метод PATCH
следующим образом,
[HttpPatch("updateMessageTemplate/{templateId}")]
public IActionResult UpdateMessageTemplate([FromHeader] int tenantId, int templateId,[FromBody] testClass msg)
{
try
{
//Some implementation is here
return Accepted();
}
catch
{
return StatusCode(500);
}
}
testClass
следующим образом,
public class testClass
{
public string body { get; set; }
}
Я вызвал API от почтальона, и он возвращает 400 BadRequest.
Я установил точку останова в методе Controller, но он не срабатывает. после того как я удалил [FromBody] testClass msg
из попадания точки останова параметра метода без возврата 400
. почему он возвращает 400, когда я использую [FromBody] testClass msg
? И как я могу вызвать этот метод контроллера из HTTP Client?.
Я пробовал это, он также возвращает 400 BadRequest
string serviceUrl = string.Format("{0}/notification/updateMessageTemplate/{1}", ConfigurationManager.AppSettings["LtApiUrl"], templateID);
string json = "[{\"body\":\"sample text\"}]";
HttpClient client = new HttpClient();
HttpMethod method = new HttpMethod("PATCH");
HttpRequestMessage message = new HttpRequestMessage(method, serviceUrl);
StringContent content = new StringContent(json, Encoding.UTF8, "application/json");
client.DefaultRequestHeaders.Add("tenantId", tenantId.ToString());
client.DefaultRequestHeaders.Add("Authorization", string.Format("bearer {0}", token));
message.Content = content;
var response = client.SendAsync(message).Result;
return response.StatusCode.ToString();
Как я могу решить это? Помогите мне, пожалуйста. Я удалил предыдущий вопрос, и это моя настоящая проблема
Обновлено:
Я изменил запрос почтальона как.
после этого его работы. но когда я звоню через http-код клиента, он выдает 400 BadRequest
. как правильно указать тело JSON через http клиента