Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有Facebook验证码的HTTP帖子_C#_Http_Post_Captcha - Fatal编程技术网

C# 带有Facebook验证码的HTTP帖子

C# 带有Facebook验证码的HTTP帖子,c#,http,post,captcha,C#,Http,Post,Captcha,我正在尝试用c#获取facebook验证码图像,然后将其显示在我的应用程序中,并将响应发送回facebook。我的应用程序运行良好,基本上可以与facebook进行通信,但过了一段时间,它会要求验证码。我加入了输入验证码的功能,当我使用webclient将其发送到facebook时,它只会在响应中感知另一个验证码。我与TemperData inn Firefox进行了双重检查,设置了正确的标题信息和所有字段,但仍然没有将我重定向到正确的页面。事实上,在响应头中,与数据相比,我可以看到缺少一个字段

我正在尝试用c#获取facebook验证码图像,然后将其显示在我的应用程序中,并将响应发送回facebook。我的应用程序运行良好,基本上可以与facebook进行通信,但过了一段时间,它会要求验证码。我加入了输入验证码的功能,当我使用webclient将其发送到facebook时,它只会在响应中感知另一个验证码。我与TemperData inn Firefox进行了双重检查,设置了正确的标题信息和所有字段,但仍然没有将我重定向到正确的页面。事实上,在响应头中,与数据相比,我可以看到缺少一个字段

    req = (HttpWebRequest)WebRequest.Create("https://www.facebook.com/recover/initiate");
        req.Host = "www.facebook.com";
        req.CookieContainer = cookies;
        req.Method = "GET";
        req.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefenter code hereox/22.0";
    req.KeepAlive = true;
    resp = req.GetResponse();
    streamReader = new StreamReader(resp.GetResponseStream());
    s = streamReader.ReadToEnd().Trim();

    index = s.IndexOf("https://www.facebook.com/captcha/tfbimage.php?");
    if (index == -1)
        continue;
    string uri = s.Substring(index);
    uri = uri.Substring(0, uri.IndexOf("\\\"") - 1);

    string captcha_persist_data = s.Substring(s.IndexOf("captcha_persist_data"));                    
    captcha_persist_data = captcha_persist_data.Substring(captcha_persist_data.IndexOf("value") + 7);
    captcha_persist_data = captcha_persist_data.Substring(0, 1156);

    string lsd = s.Substring(s.IndexOf("lsd"));
    lsd = lsd.Substring(lsd.IndexOf("value") + 7);
    lsd = lsd.Substring(0, 8);
    client = new WebClient();
    coo += "act=1375466977443%2F3;_e_0p4M_2=%5B%220p4M%22%2C1375466960620%2C%22act%22%2C1375466960619%2C2%2C%22captcha_response%22%2C%22click%22%2C%22click%22%2C%22-%22%2C%22r%22%2C%22%2Frecover%2Finitiate%22%2C%7B%22ft%22%3A%7B%7D%2C%22gt%22%3A%7B%7D%7D%2C0%2C0%2C0%2C1423%2C16%5D;wd=1920x796;_e_0p4M_3=%5B%220p4M%22%2C1375466977445%2C%22act%22%2C1375466977443%2C3%2C%22captcha_submit%22%2C%22click%22%2C%22click%22%2C%22-%22%2C%22r%22%2C%22%2Frecover%2Finitiate%22%2C%7B%22ft%22%3A%7B%7D%2C%22gt%22%3A%7B%7D%7D%2C0%2C0%2C0%2C1423%2C16%5D";

    client.Headers[HttpRequestHeader.Host] = "www.facebook.com";
    client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0";
    client.Headers[HttpRequestHeader.Accept] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
    client.Headers[HttpRequestHeader.AcceptLanguage] = "en-US,en;q=0.5";
    //client.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate";
    client.Headers[HttpRequestHeader.Referer]="https://www.facebook.com/recover/initiate";
    client.Headers[HttpRequestHeader.Cookie] = coo;
    //client.Headers[HttpRequestHeader.Connection] = "keep-alive";
    client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
    //client.Headers[HttpRequestHeader.ContentLength] = "1235";

  image1.Source = new BitmapImage(new Uri(uri));
    MessageBox.Show("Alert");
    streamReader = new StreamReader("D:\\abc.txt");
    string newStr = streamReader.ReadLine();
    streamReader.Close();

    nameValuePairs = new NameValueCollection();
    nameValuePairs.Add("lsd", lsd);

    nameValuePairs.Add("captcha_persist_data", captcha_persist_data);

    nameValuePairs.Add("captcha_response", newStr);

    nameValuePairs.Add("captcha_submit", "Submit");

    response = client.UploadValues("https://www.facebook.com/recover/initiate", nameValuePairs);
    chars = new char[response.Length];
    for (int i = 0; i < response.Length; i++)
    {
        chars[i] = Convert.ToChar(response[i]);
    }
    s = new string(chars);
req=(HttpWebRequest)WebRequest.Create(“https://www.facebook.com/recover/initiate");
req.Host=“www.facebook.com”;
req.CookieContainer=cookies;
req.Method=“GET”;
req.UserAgent=“Mozilla/5.0(Windows NT 6.2;WOW64;rv:22.0)Gecko/20100101 Firefenter代码hereox/22.0”;
req.KeepAlive=true;
resp=req.GetResponse();
streamReader=新的streamReader(resp.GetResponseStream());
s=streamReader.ReadToEnd().Trim();
索引=s.IndexOf(“https://www.facebook.com/captcha/tfbimage.php?");
如果(索引==-1)
继续;
字符串uri=s.Substring(索引);
uri=uri.Substring(0,uri.IndexOf(“\\\”)-1);
字符串captcha_persist_data=s.Substring(s.IndexOf(“captcha_persist_data”);
captcha\u persist\u data=captcha\u persist\u data.Substring(captcha\u persist\u data.IndexOf(“值”)+7);
captcha_persist_data=captcha_persist_data.Substring(01156);
字符串lsd=s.Substring(s.IndexOf(“lsd”);
lsd=lsd.子字符串(lsd.IndexOf(“值”)+7);
lsd=lsd.子串(0,8);
客户端=新的WebClient();
coo+=“act=1375466977443%2F3_e_0p4; u 2=%5B%220p4M%22%2C1375466960620%2C%22act%22%2C1375466960619%2C2%2C%22captcha_响应%22%2C%22click%22%2C%22%2C%22%2C%22r%22%2C%22%2C%7B%22ft%22%3A%7B%7D%22gt%22%3A%7D%7D%2C0%2C0%2C1423%2C16%5D;wd=1920x796_e_0p4M_3=%5B%220p4M%22%2C1375466977445%2C%22act%22%2C1375466977443%2C3%2C%22captcha_提交%22%2C%22click%22%2C%22-%2C%22r%22%2C%22%2F恢复%2F启动%22%2C%7B%7D%22ft%22%3A%7D%22gt%22%3A%7B%7D%7D%2C0%2C0%2C0%2C16%5D”;
client.Headers[HttpRequestHeader.Host]=“www.facebook.com”;
client.Headers[HttpRequestHeader.UserAgent]=“Mozilla/5.0(Windows NT 6.2;WOW64;rv:22.0)Gecko/20100101 Firefox/22.0”;
client.Headers[HttpRequestHeader.Accept]=“text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”;
client.Headers[HttpRequestHeader.AcceptLanguage]=“en-US,en;q=0.5”;
//client.Headers[HttpRequestHeader.AcceptEncoding]=“gzip,deflate”;
client.Headers[HttpRequestHeader.Referer]=”https://www.facebook.com/recover/initiate";
client.Headers[HttpRequestHeader.Cookie]=coo;
//client.Headers[HttpRequestHeader.Connection]=“保持活动状态”;
client.Headers[HttpRequestHeader.ContentType]=“application/x-www-form-urlencoded”;
//client.Headers[HttpRequestHeader.ContentLength]=“1235”;
image 1.Source=新的位图图像(新的Uri(Uri));
MessageBox.Show(“警报”);
streamReader=新的streamReader(“D:\\abc.txt”);
字符串newStr=streamReader.ReadLine();
streamReader.Close();
nameValuePairs=新的NameValueCollection();
nameValuePairs.Add(“lsd”,lsd);
nameValuePairs.Add(“captcha\u persist\u data”,captcha\u persist\u data);
nameValuePairs.Add(“验证码响应”,newStr);
添加(“验证码提交”、“提交”);
响应=客户端。上载值(“https://www.facebook.com/recover/initiate“,nameValuePairs);
chars=新字符[response.Length];
for(int i=0;i

任何帮助都将不胜感激。

您应该使用Facebook API。