Httpclient处理服务器注销

时间:2014-06-16 14:39:20

标签: c# oop httpclient

类网站定义了一个网站,其中包含登录和解析数据的方法。 我有一个单独的类浏览器,其中包含一个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)
    }

1 个答案:

答案 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);
   }
}