C # как повторить попытку, если ожидают url.GetStringAsync null? - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу спросить о том, как повторить попытку, если await url.GetStringAsync получить отмену?

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var httpclient = new HttpClient();
var html = await httpclient.GetStringAsync(url);

1 Ответ

0 голосов
/ 14 февраля 2019

если вы хотите сделать это в приведенном выше коде (вместо использования объекта HttpResponse), вы можете сделать что-то вроде ниже

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var httpclient = new HttpClient();
int retries = 5;
int count = 0;
var html = await httpclient.GetStringAsync(url);

while(String.IsNullOrEmpty(html) && count++ < retries) {
    var html = await httpclient.GetStringAsync(url); }

if(String.IsNullOrEmpty(html)) {
    throw new Exception("Could not contact the server"); }
...