Есть одно приложение, API с доступом к базе данных и одно приложение, которое вызывает API с помощью RestSharp. Я реализовал все асинхронные методы RestSharp для универсальной работы. Итак, GET, POST, DELETE все работает. Единственное, что я не могу заставить работать, это PUT.
Прежде всего, это мои контроллеры PUT:
[HttpPut("{id}")]
public void Put(int id, [FromBody]ApplicationUser value)
{
string p = value.Email;
}
это мой метод:
public Task<bool> PutRequestContentAsync<T>(string resource, object id, T resourceObject) where T : new()
{
RestClient client = new RestClient("http://localhost:54008/api/");
RestRequest request = new RestRequest($"{resource}/{{id}}", Method.PUT);
request.AddUrlSegment("id", id);
request.AddObject(resourceObject);
var tcs = new TaskCompletionSource<bool>();
var asyncHandler = client.ExecuteAsync<T>(request, r =>
{
tcs.SetResult(r.ResponseStatus == ResponseStatus.Completed);
});
return tcs.Task;
}
и это мой вызов в представлении (все остальные вызовы GET,... работают нормально):
bool putOk = await new RepositoryCall()
.PutRequestContentAsync("Values", 2,
new ApplicationUser {
Email="[email protected]"
}
);
при отладке статус ответа равен Completed
, но PUT никогда не вызывается.
Есть идеи, в чем может быть проблема?