PostAsJsonAsync добавление ведущего символа в тело запроса - PullRequest
1 голос
/ 07 ноября 2019

У меня странная проблема при попытке использовать PostAsJsonAsync. В теле я получаю этот json со странными начальными и конечными символами:

99 {

"SessionReferenceId": "f39dc178-279e-4e3a-bda9-a16829eb0e45",

"GameReferenceId": "netent_es_starburst",

"CurrencyCode": "EUR",

"LossLimit": 100,

"ClientType": 1

}

0

и на стороне API это не может быть связано, и я получаю сообщение об ошибке, что запрос не может иметь пустое тело.

Кодна отправляющей стороне это выглядит так:

using(var client = new SGSClient()) {
  var model = new CashSessionCreateModel()
            {
             ClientType = ClientType.DesktopBrowser,
             CurrencyCode = "EUR",
             GameReferenceId = "netent_es_starburst",
             LossLimit = 100,
             SessionReferenceId = "f39dc178-279e-4e3a-bda9-a16829eb0e45"
           };

 HttpResponseMessage response = client.PostAsJsonAsync(apiUrl, model).Result;
}

Добавление конфигурации HTTPClient:

public SGSHttpClient()
        {
            var appSettingsFilePath = $"Configuration\\appSettings.json";

            // Build Configuration
            var configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile(appSettingsFilePath, false, true)
                .AddEnvironmentVariables()
                .Build();

            var sgsConfig = configuration.GetSection("SGSClient");

            //Base url for SGS service
            var _clientConfig = sgsConfig.GetSection("Client").GetChildren();
            var baseAddress = _clientConfig.FirstOrDefault(o => o.Key.Equals("BaseAddress"));
            BaseAddress = new Uri(baseAddress.Value);

            //Adding headers
            DefaultRequestHeaders.Accept.Clear();
            DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            _dateUTC = DateTime.UtcNow.ToString("u");
            DefaultRequestHeaders.Add("DateUtc", _dateUTC);


        }

1 Ответ

0 голосов
/ 15 ноября 2019

Вы можете использовать этот тип формата для отправки может быть полезным

 var postTask = client.PostAsJsonAsync<ClassNameOfObject>(baseUri + "ControllerName/ActionName?UserID=" + UserID, object);
                postTask.Wait();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...