类网站定义了一个网站,其中包含登录和解析数据的方法。 我有一个单独的类浏览器,其中包含一个httpclient类,它被所有Site实例广泛使用。
我想要做的是在浏览器中实现异常处理,这样如果Site被注销(这将通过检查响应来确定),它将尝试重新登录,并重试相同的get请求,就好像什么都没发生过。但是,我不知道如何构造它,因为登录方法将位于Site对象中。伪代码就是这样的
static class Browser
static get_url(string url)
try
{
fetch url with http client;
if (session logged out)
throw logged out exception
}
catch (logged out exception)
{
site.login, get_url(url)
}
class Site
update(url)
{
content = Browser.get_url(url)
}
答案 0 :(得分:0)
我要做的是在每次执行ValidateLogin
方法之前添加某种GetUrl
方法。这可以是每隔X分钟到期的缓存值,也可以是通过浏览器发送的简单REST请求。
看起来如下:
public class Site
{
public void Update(string url)
{
var isLoggedIn = Browser.ValidateLogin();
if (!isLoggedIn)
{
this.Login();
}
Browser.GetUrl(url);
}
}