2011-03-18 56 views
0

我想使用webclient从页面注销。如何发送Web请求注销?

这是我的登录和网站下载代码。

public bool LogIn(string loginName, string password) 
{ 
    try 
    { 
     NameValueCollection postData = new NameValueCollection(); 
     postData.Add("login", loginName); 
     postData.Add("password", password); 

     // Authenticate 
     _webClient.UploadValues("http://rapideo.pl/login.php", postData); 
     //string temp = _webClient.DownloadString("http://rapideo.pl/lista"); 
    } 
    catch 
    { 
     return false; 
    } 
    _loggedIn = true; 
    _loginName = loginName; 
    return true; 
} 

class WebClientEx : WebClient 
{ 
    public CookieContainer CookieContainer { get; private set; } 

    public WebClientEx() 
    { 
     CookieContainer = new CookieContainer(); 
    } 

    protected override WebRequest GetWebRequest(Uri address) 
    { 
     var request = base.GetWebRequest(address); 
     if (request is HttpWebRequest) 
     { 
      (request as HttpWebRequest).CookieContainer = CookieContainer; 
     } 
     return request; 
    } 
} 

为了登出我只需要在浏览器中打开该页面:

http://rapideo.pl/wyloguj

我知道如何登录后下载网页的源代码。 但我怎样才能发送http请求注销?我不想获得该页面的响应或源代码。我只是想发送请求。

回答

2

作为一个完整性检查,您是否已尝试做一个WebRequest.DownloadString("http://rapideo.pl/wyloguj")然后丢弃返回的数据?

如果这不起作用,有一件事要尝试在像Fiddler这样的工具中查看请求/响应消息,以查看通过浏览器注销时与编程相比究竟发生了什么。

此外,作为一般情况,看起来用户的名称和密码是作为登录的一部分以明文形式发送的。不确定是否有可用于该网站的HTTPS登录端点,但这是需要研究的内容。