Я возвращаю код состояния с 3 разных URL-адресов, используя ForEach L oop, чтобы просмотреть результаты. Он возвращает результаты просто отлично, но возвращает 3 набора результатов.
public static List<Models.SiteStatus> GetStatus()
{
statusList.Clear();
// website urls to check
string site1 = "https://www.google.com";
string site2 = "https://www.google.com";
string site3 = "https://www.google.com";
int site1Status = 0;
int site2Status = 0;
int site3Status = 0;
HttpStatusCode result = default;
HttpWebResponse response = null;
// add urls to a list to pass through
List<Uri> urls = new List<Uri>();
urls.Add(new Uri(site1));
urls.Add(new Uri(site2));
urls.Add(new Uri(site3));
// check status per site
foreach (Uri u in urls)
{
try
{
HttpWebRequest request = WebRequest.Create(u) as HttpWebRequest;
// just request headers
request.Method = "HEAD";
response = request.GetResponse() as HttpWebResponse;
result = response.StatusCode;
// 15 second timeout
request.Timeout = 15000;
}
catch (Exception)
{
throw;
}
finally
{
if (response != null)
{
if (response.ResponseUri.AbsoluteUri == site1 && response.StatusCode == result)
{
site1Status = (int)response.StatusCode;
}
if (response.ResponseUri.AbsoluteUri == site2 && response.StatusCode == result)
{
site2Status = (int)response.StatusCode;
}
if (response.ResponseUri.AbsoluteUri == site3 && response.StatusCode == result)
{
site3Status = (int)response.StatusCode;
}
var res = new SiteStatus
{
url1Site = site1,
url1Status = site1Status,
url2Site = site2,
url2Status = site2Status,
url3Site = site3,
url3Status = site3Status
};
statusList.Add(res);
}
else
{
}
}
// close connection
response.Close();
}
return statusList;
}
Возвращенные результаты выглядят примерно так:
- Сайт 1 = 200
- Сайт 2 = 0
- Сайт 3 = 0
- Сайт 1 = 200
- Сайт 2 = 200
- Сайт 3 = 0
- Сайт 1 = 200
- Сайт 2 = 200
- Сайт 3 = 200
Мне просто нужен последний набор результатов, возвращаемых во внешнем интерфейсе html, но не могу понять это. Любая помощь это очень ценится.