【发布时间】:2019-01-17 09:41:35
【问题描述】:
我正在通过 HttpClient 向服务器发送这样的请求:
public async Task GetTest()
{
CancellationTokenSource tokenSource = new CancellationTokenSource();
string url = String.Format($"api/Test/getTest");
HttpResponseMessage response = await _httpClientFactory.HttpClient.GetAsync(url, tokenSource.Token).ConfigureAwait(false);
response.EnsureSuccessStatusCode();
}
在WebApi(Core 2.1)方法上是这样的:
[HttpGet("getTest")]
public async Task<IActionResult> GetTest(CancellationToken token)
{
try
{
object test = await _dataService.GetTest(token);
return Ok(test);
}
catch (Exception ex)
{
this._logger.LogError(ExceptionHelper.ExMessageDeepGet(ex));
return new InternalServerErrorWithMessageResult(ex);
}
}
在_dataService.GetTest(token) 我做token.ThrowIfCancellationRequested();
问题是我在 webapi 上获得了新令牌,而不是我通过客户端发送的令牌,因此如果我在 api 响应之前停止请求(关闭客户端),则不会引发异常..
有什么建议吗?
【问题讨论】:
标签: c# asp.net-core asp.net-core-webapi dotnet-httpclient asp.net-core-2.1