Я звоню, используя HttpClient.
var serializedRequest= JsonConvert.SerializeObject(searchRequest);
var stringContent = new StringContent(serializedRequest, Encoding.UTF8, "application/json");
var response = await _httpClient.PostAsync(url, stringContent);
Объект недействителен в контроллере API:
[HttpPost]
public List<string> GetSearchResults([System.Web.Http.FromBody]SearchRequest searchRequest)
Однако, если я сделаю тот же вызов из Postman (я скопировал сериализованный объект в Visual Studio во время отладки), оно работает. Почему это так? Я пытаюсь выяснить, как отправить длину содержимого вместе с запросом, но, очевидно, это должно происходить уже с помощью StringContent
.
. Вызывающая сторона. NET Core 2.2 и API . NET Framework 4.7.2.
EDIT:
Это был первоначальный вызов:
var response = await _httpClient.PostAsJsonAsync(url, searchRequest);
Это НЕ работает, даже если метод API не работает используя [FromBody]
. Похоже, мне нужно использовать приведенный выше код (StringContent
) вместе с методом API, не использующим [FromBody]
. Что странно, так это то, что у коллеги нет этой проблемы. Это только на моей машине. Go рисунок.