有一個應用程序,可訪問數據庫的API和一個使用RestSharp調用API的應用程序。 我實現了RestSharp的所有異步方法以通用。所以,GET,POST,DELETE都可以工作。我唯一不能工作的就是PUT。RestSharp異步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永遠不會被調用。
任何想法可能是什麼問題?
您指的是PUT,但您的存儲庫調用反映DELETE。可能你複製粘貼錯誤的一段代碼。 – serhiyb
@serhiyb yep,是我發佈的錯誤方法。已更新:D –
您測試過哪個Web服務器? IIS/IIS Express? – serhiyb