因为免费的每天可以使用10次,因此设置时间间隔,不是每次获取都重新获取新的数据。大概3小时一次。
设置两个静态变量(公用)
public static DateTime RequestTime; public static ReturnModel PreviusResult;分别是上次get的时间,和上次获取的数据。
[WebMethod]
public ReturnModel GetNews(string url = "https://api.currentsapi.services/v1/search?country=CN")
{
var nowt = DateTime.Now;
//
if (RequestTime != null)
{
var duraturn = (DateTime.Now - RequestTime);
if (duraturn.TotalHours >= 3)
{
//请求新的数据
return GetModel(url);
}
else
{
//时间较短,不请求新的数据
//但如果static 变量为空 仍然尝试请求数据
if (PreviusResult==null)
{
return GetModel(url);
}
else
{
return PreviusResult;
}
}
}
else
{
//请求新的数据
return GetModel(url);
}
}