Здравствуйте, я столкнулся со следующей проблемой:
Я пытаюсь отправить запрос 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
, не имеет значения.