Тело запроса не прочитано - PullRequest
1 голос
/ 31 марта 2019

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

Я пытаюсь отправить запрос 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, не имеет значения.

...