0

我正在尝试登录 xbox 实时页面,但遇到了一些问题,不知道为什么,我想我正确设置了所有内容......这是我的代码

CookieCollection cookies = new CookieCollection();
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://account.xbox.com/en-US/PaymentAndBilling/RedeemCode");
Request.CookieContainer = new CookieContainer();
Request.CookieContainer.Add(cookies);
//Request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";

HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
Response.Cookies.Add(cookies);

Response.Close();

HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create("https://login.live.com/");
getRequest.Method = "POST";
getRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
getRequest.CookieContainer = new CookieContainer();
getRequest.CookieContainer.Add(cookies);

string postData = String.Format("login=/*dd*/&passwd=/*pass*/");
byte[] byteArray = Encoding.ASCII.GetBytes(postData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();

HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
getResponse.Cookies = cookies;
StreamReader sr1 = new StreamReader(getResponse.GetResponseStream());
string sourceCode = sr1.ReadToEnd();
richTextBox1.Text = sourceCode;
sr1.Close();

我真的很想得到任何帮助,或者任何信息,我在哪里可以找到一些关于 cookiecontainers、c# 中的 http 协议等的解释……因为这是我第一个使用 WebRequests 的程序,非常感谢你提前提供的帮助。

4

1 回答 1

0

好吧,你会恨我的,但如果我有任何选择我不会使用 HttpwebResponse,我会使用http://www.seleniumhq.org/projects/webdriver/

这很简单,因为它使用完整的浏览器而不需要维护 cookie。如果您需要以交互方式运行它,或者没有 gui,您可以使用 SimpleDriver()

于 2015-05-30T14:37:25.540 回答