Я пытаюсь отправить запрос 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 было изменено где-то на пути ... Есть две новые внешние скобки, которые пришли ...