C#从使用代理的请求中获取cookie

时间:2017-09-22 12:01:54

标签: c# cookies proxy

我正在尝试制作一个登录名为ROBLOX的网站的程序。然后使用ROBLOX自己创建的API检查帐户的统计信息。

所以这是我的登录代码:

public static void MainLogin(string user, string pass, string ip, int port)
{

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.roblox.com/NewLogin");
    string postData = String.Format("username={0}&password={1}&submitLogin=Log+In&ReturnUrl=", user, pass);
    byte[] data = Encoding.UTF8.GetBytes(postData);
    WebProxy myproxy = new WebProxy(ip, port);
    myproxy.BypassProxyOnLocal = false;
    request.Proxy = myproxy;
    request.Method = "POST";
    request.AllowAutoRedirect = false;
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = data.Length;

    using (var stream = request.GetRequestStream())
    {
        stream.Write(data, 0, data.Length);
    }
    reqCookie = RetrieveCookie(request);



}

随着它登录,广告你可以看到它的最后一行,它说'RetrieveCookie'。这是我为获取我想要的cookie而做的另一个功能。我想要的cookie叫做'.ROBLOSECURITY = _'。这是我的retrievecookie功能:

private static string RetrieveCookie(HttpWebRequest htr)
{
    using (var response = (HttpWebResponse)htr.GetResponse())
    {

        foreach (string item in response.Headers.Keys)
        {

            if (item == "Set-Cookie")
            {

                int Start = response.Headers[item].IndexOf(".ROBLOSECURITY=_", 0);
                int End = response.Headers[item].IndexOf("; domain=", Start);
                return response.Headers[item].Substring(Start, End - Start);

            }


        }
        return null;
    }
}

如您所见,该请求已在此处发回。我收到了错误:

int End = response.Headers[item].IndexOf("; domain=", Start);

我从中得到的错误是:

System.ArgumentOutOfRangeException

我真的不知道这意味着什么,但它必须对代理做些什么。因为当我使用代理时,它才能正常工作!

  

我怎样才能让它与代理一起工作,这是否可能?

非常感谢!

0 个答案:

没有答案