我试图登录到Facebook在我的程序,并从那里解析某些信息(如姓名,个人档案相片等)。C# - HttpWebRequest的POST(登录Facebook的)
我重新导向回到Facebook的主页,每次我执行下面的代码。
string email = "email";
string pw = "pw";
string PostData = String.Format("email={0}&pass={1}", email, pw);
CookieContainer cookieContainer = new CookieContainer();
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("");
req.CookieContainer = cookieContainer;
req.Method = "POST";
req.ContentLength = PostData.Length;
req.ContentType = "application/x-www-form-urlencoded";
req.AllowAutoRedirect = true;
req.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] loginDataBytes = encoding.GetBytes(PostData);
req.ContentLength = loginDataBytes.Length;
Stream stream = req.GetRequestStream();
stream.Write(loginDataBytes, 0, loginDataBytes.Length);
HttpWebResponse webResp = (HttpWebResponse)req.GetResponse();
Stream datastream = webResp.GetResponseStream();
StreamReader reader = new StreamReader(datastream);
webBrowser1.DocumentText = reader.ReadToEnd();
foreach (Cookie cookies in webResp.Cookies)
{
MessageBox.Show(cookies.Name + " " + cookies.Value);
}
我在做什么错在这里?任何帮助将不胜感激,非常感谢! :)
编辑: 我发现了如何做到这一点我不久后公布。
的Facebook将您访问它,看看你是否已经启用了cookie的cookie每次,我所做的就是将请求发送给Facebook的登录页面获取Cookie,然后用POST数据发送另一个。它以这种方式工作,我成功登录。
无论如何,谢谢! :)
您是否阅读过Facebook API http://developers.facebook.com/blog/post/395/或http://facebooksdk.codeplex.com/ – Lloyd
这是违反Facebook服务条款。 – bkaid
由于这种原因,我经常不得不使用webrwser控件而不是HttpWebRequest。这个问题让我难以接受新的东西......再加上即使它是facebook的服务条款,它也可以用于道德上的东西...... –