Как отформатировать запрос на POST в .NET - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть такой параметр POST:

var requestJson = $@"{{""positionsQuery"":{{""positionDate"":[""{positionDate.Date:yyyyMMdd}""]}},""measures"":[""margin""]}}";

Это выдает \, поэтому Fiddler показывает его как

"{\"positionsQuery\":{\"positionDate\":[\"20181119\"]},\"measures\":[\"margin\"]}"

В результате запрос не выполняется.Что мне нужно сделать, так это то, что работа

{"positionsQuery":{"positionDate":["20181119"]},"measures":["margin"]}

До этого я пытался `Json.Net '

        var request = new { PositionsQuery = new { PositionDate = new [] { positionDate.Date.ToString("yyyyMMdd") } }, Measures = new [] { "margin" }};
        var requestJson = JsonConvert.SerializeObject(request, new JsonSerializerSettings
        {
            ContractResolver = new CamelCasePropertyNamesContractResolver()
        });
        var response = (await _httpClient.PostAsync(url, requestJson).ConfigureAwait(false));

Тем не менее \ вызывает проблемы (скриншот Fiddler).

Fiddler screenshot

Спасибо!Как я могу отформатировать запрос?

1 Ответ

0 голосов
/ 20 ноября 2018

Не создавайте вручную строку JSON.Намного чище построить объект и сериализовать его.

var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(
    new
    {
        positionsQuery = new
        {
            positionDate = positionDate.Date.ToString("yyyyMMdd")
        },
        measures = new []{"margin"}
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...