Доброго времени суток всем. Хочу написать программку для упрощенного получения бесплатного пароля для socks2http. Дело в том, что приходится каждый день лезть на сайт, вводить мыло и код с картинки, что, честно говоря, надоедает рано или поздно. Начал писать черновой вариант (лишь бы работал для начала). Язык: C#. Приложение с запросами и ответами пишу впервые отсюда и понятно, что вопросов куча и со всеми справиться не смог.
Код программы: (форма+текстовое поле+поле для картинки+кнопка)
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Net;
using System.Text;
using System.Windows.Forms;
namespace WinF
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string z;
private void Form1_Load(object sender, EventArgs e)
{
WebRequest request = WebRequest.Create("http://api.recaptcha.net/challenge?k=6Lc-tQAAAAAAAMP8b0ayxvd30YAQttDHHrXdAkVt");
WebRequest.DefaultWebProxy = new WebProxy("cache.vsi.ru", 3128);
request.Method = "GET";
Stream str = request.GetResponse().GetResponseStream();
StreamReader sr = new StreamReader(str);
string href = sr.ReadToEnd();
z = href.Substring(41, 286);
sr.Close();
str.Close();
pictureBox1.ImageLocation = "http://api.recaptcha.net/image?c=" + z;
pictureBox1.Load();
}
private void button1_Click(object sender, EventArgs e)
{
HttpWebRequest requesta = (HttpWebRequest)
WebRequest.Create("http://www.totalrc.net/main_ref.jsp?menu=13");
requesta.ServicePoint.Expect100Continue = false;
requesta.Method = "POST";
requesta.Accept = "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1";
requesta.Referer = "http://www.totalrc.net/main_ref.jsp?menu=13";
requesta.ContentType = "application/x-www-form-urlencoded";
requesta.UserAgent = "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00";
requesta.CookieContainer = new CookieContainer();
Cookie ck = new Cookie();
ck.Value = "JSESSIONID=0FBD7A525A3BA93AC32FD9D09DB68D24";
requesta.CookieContainer.Add(ck);
StreamWriter worth = new StreamWriter(requesta.GetRequestStream());
worth.Write("email=soldier%40box.vsi.ru&recaptcha_challenge_filed=" + z + "&recaptcha_response_field=" + textBox1.Text.Replace(" ", "+") + "&mysubmit=Submit");
worth.Close();
HttpWebResponse resp = (HttpWebResponse)
requesta.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.GetEncoding(28591));
string page = sr.ReadToEnd();
sr.Close();
MessageBox.Show("Ура", "Ура");
}
}
}
Проблема заключается в том, что первый запрос при загрузке формы срабатывает нормально, картинка грузится. А вот второй запрос почему-то возвращает страницу почти 1 в 1 как при использовании браузера, но только без результатов (о том, что письмо с кодом мне выслали или код введен неверно), соответственно, и никакого письма мне не приходит. В чем может быть проблема? Подумал, может cookies требуются и попробовал прикрепить их, но, к сожалению как бы не крепил (сначала посмотрел способы как в мсдн, потом погуглил) компилятор постоянно выдают различного рода ошибки. Просьба, помочь с cookies и подсказать, что же не так в обработке нажатия кнопки.