вам нужно дождаться результата, не пытайтесь получить доступ. Результат самостоятельно. В этот момент вызов не был бы завершен.
вам нужно использовать что-то вроде этого:
HttpContent content = new FormUrlEncodedContent(formVars);
var result = await client.PostAsync("ImageApi/Compare", content);
result .EnsureSuccessStatusCode();
string responseBody = await result.Content.ReadAsStringAsync();
Это основано на вашем коде и не было протестировано, но должно установить правильный путь, чтобы это заработало. Никогда не пытайтесь выполнять асинхронную работу, получая доступ к .Result.
Еще одна вещь, вам также нужно использовать модель.
создайте класс модели, который имеет все свойства, которые вы добавляете в свой словарь.
в вашем случае это будет что-то вроде:
public class MyModel{
public string sourceFile { get ;set; }
}
ваш контроллер становится:
[HttpPost()]
public ActionResult Compare([FromBody]MyModel model)
{
return Ok(model.sourceFile);
}