Как получить stringContent со стороны сервера? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть клиент. Вызовите мою службу API следующим образом:

var paramDiction = new Dictionary<string, string>{{"datefROM", "2018/1/1"}};
string content = JsonConvert.SerializeObject(paramDiction);
var stringContent = new StringContent(content, Encoding.UTF8, "application/json");
// call the API service
var x = await _httpClient.PostAsync(url, stringContent);

Я пробовал много способов получить stringContent на стороне сервера, но все еще не могу его получить.Я ошибаюсь?

    [HttpPost]
    [Route("GetStringContent")]
    public IActionResult GetStringContent()
    {
        var stringContent = Request.HttpContext.ToString();

        return stringContent;
    }

Не знаю, почему запрос здесь является httpRequest, только имеет HTTPContext, и этот httpContent не может считывать содержимое как

    Request.Content.ReadAsStringAsync();

1 Ответ

0 голосов
/ 18 сентября 2018

Прежде всего для методов API вы обычно возвращаете HttpResponseMessage, который вы можете создать с помощью Request.CreateResponse(HttpStatusCode, Message).

Теперь к вашему вопросу, в Asp.Net метод API имеет параметры в соответствии с тем, что вы ожидаете отправить. Например, в вашем случае подписавшийся метод будет выглядеть следующим образом public HttpResponseMessage GetStringContent([FromBody] Dictionary<string, string> stringContent). Атрибут [FromBody] используется в методах публикации, чтобы сигнализировать, что Контент поступает из тела запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...