如何发送Web请求注销?

时间:2011-03-18 01:49:35

标签: c# .net httpwebrequest webclient

我想使用webclient从页面注销。

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

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请求到注销?我不希望得到该页面的响应或源代码。我只是想发送请求。

1 个答案:

答案 0 :(得分:2)

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

如果这不起作用,尝试的一件事就是在Fiddler这样的工具中查看请求/响应消息,看看当你通过浏览器注册而不是通过编程方式时,究竟是什么。

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