Тело моего сообщения HTTPClient Post не работает на моем сервере - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь отправить запрос REST Post, используя следующий код (на Xamarin):

            HttpResponseMessage response = null;
        using (var client = new HttpClient())
        {
            using (var request = new HttpRequestMessage(HttpMethod.Post, requestURI))
            {
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", app.OAuth_Token);
                string content = JsonConvert.SerializeObject(OrderedItem);
                if (content != null)
                {
                    request.Content = new StringContent(content, Encoding.UTF8, "application/json");
                }

                response = await client.SendAsync(request).ConfigureAwait(false);
                var responseString = await response.Content.ReadAsStringAsync();
            }
        }

Сообщение хорошо перехвачено сервером.Но тело является нулевым ... Вот это содержимое строки ->

"{\"ItemId\":5,\"Quantity\":1,\"SelectedSize\":null,\"SelectedSalt\":false,\"SelectedHotNotCold\":false,\"SelectedMeatId\":null,\"SelectedSauceId\":null}"

Сервер работает на ASP.Net Web.api следующим образом:

            public async Task<IHttpActionResult> Post([FromBody]string value)
    {
        if (value == null)
            return BadRequest("Body cannot be null");

... some code 
}

Странно, я проверил запрос с почтальоном, и все работает хорошо ...

РЕДАКТИРОВАТЬ

Изменяя заголовок следующим образом, я могу получить содержимое сообщения:

        public async Task<IHttpActionResult> Post(object value)
    {
        if (value == null)
            return BadRequest("Body cannot be null");
    ... other code 
    }

И содержание объекта следующее:

{{  "ItemId": 4,  "Quantity": 1,  "SelectedSize": null,  "SelectedSalt": alse,  "SelectedHotNotCold": false,  "SelectedMeatId": null,  "SelectedSauceId": null}}

Итак, у меня есть ощущение, что Содержимое моего HttpRequest было изменено где-то на пути ... Есть две новые внешние скобки, которые пришли ...

...