Тело запроса не прочитано

#c# #asp.net-core #dotnet-httpclient

#c# #asp.net-core #dotnet-httpclient

Вопрос:

Здравствуйте, я столкнулся со следующей проблемой:

Я пытаюсь отправить http POST запрос на сервер, ожидающий список объектов (json). Тело запроса выглядит следующим образом: {"context":3} . Если тело запроса не прочитано, операция не завершится ошибкой, вместо этого она вернет больше объектов (тело действует как фильтр).

Я пытаюсь понять, почему request body не принимается во внимание, поскольку я всегда получаю все объекты.

 [TestCase]
public async Task CanGetFromAws()
{
    var data = new { context = 3 };
    var raw = JsonConvert.SerializeObject(data);

    HttpClient client = new HttpClient();

    var content = new StringContent(raw);
    HttpRequestMessage msg = new HttpRequestMessage
    {
        Method = HttpMethod.Post,
        Content = content,
        RequestUri =new Uri(URL)
    };

    var response=await client.SendAsync(msg);
    var payload =await  response.Content.ReadAsStringAsync();
}
  

Из postman это работает, тело запроса считывается, и я получаю отфильтрованный результат, я также пробовал с RestSharp , и снова это работает:

 [TestCase]
public async Task CanGetFromAwsWithRESPSharp()
{
    var data = new { context = 3 };
    var raw = JsonConvert.SerializeObject(data);

    var client = new RestClient(URL);
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");

    request.AddParameter("application/json", raw, ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    var dt = response.Content; //gets filtered results
}
  

Может ли кто-нибудь объяснить мне, в чем может быть проблема, почему мое тело запроса не рассматривается в первом случае?

P.S URL Является string константой, не относящейся к делу.

Комментарии:

1. Вы не задаете Content-Type в том первом примере. например new StringContent(raw, Encoding.UTF8, "application/json") ;