使用cts.Token的ReadAsStringAsync

时间:2018-11-15 12:55:46

标签: c# httpclient

当我通过httpClient读取异步消息时,是否可以使用cts.Token?

这就是我想要做的。

using (var client = new HttpClient())
            {
                client.Timeout = TimeSpan.FromMilliseconds(20000);
                var response = await client.PostAsync("http://" + MyIp + ":9090/api/SqlAction/", new StringContent(postQuery, Encoding.UTF8, "application/json"), cts.Token);

                if (response.IsSuccessStatusCode)
                {

                    string content = await response.Content.ReadAsStringAsync(cts.Token);
               }

但是我正在服用 错误CS1501方法'ReadAsStringAsync'的重载没有接受1个参数

1 个答案:

答案 0 :(得分:1)

不,不是因为方法ReadAsStringAsync并没有接受CancellationToken作为参数的重载方法!

您可以在请求取消之前检查一下:

if (!cts.Token.IsCancellationRequested && response.IsSuccessStatusCode)
{
    string content = await response.Content.ReadAsStringAsync();
}