Крч, искал, как капчу в base64 перевести без сохранения ее в виде файла на диске.
Нашел где-то на форуме вот этот кусок:
Но тут понятно, что при запросе капчи куки не передает, прокси не использует. Начал гуглить дальше, почитал пару статеек типа этой и этой, и на основании выше приведенного кода я слепил своего монстра. При попытке запуска, получаю ошибку:
Кто разбирается в C#, подскажите, пожалуйста, в чем ошибка (где-то в ссылке на капчу, как я понял, но в чем конкретно - не понятно). И вообще, не напихал ли я в него невпихуемового, если напихал, поправьте, позязя. =]
Нашел где-то на форуме вот этот кусок:
Код:
string imageUrl = @"http://15procentov.ru/kcaptcha/";
byte[] imageBytes;
HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
WebResponse imageResponse = imageRequest.GetResponse();
Stream responseStream = imageResponse.GetResponseStream();
using (BinaryReader br = new BinaryReader(responseStream))
{
imageBytes = br.ReadBytes(500000);
br.Close();
}
responseStream.Close();
imageResponse.Close();
var base64 = Convert.ToBase64String(imageBytes);
Кто разбирается в C#, подскажите, пожалуйста, в чем ошибка (где-то в ссылке на капчу, как я понял, но в чем конкретно - не понятно). И вообще, не напихал ли я в него невпихуемового, если напихал, поправьте, позязя. =]
Код:
string CaptchaUrl = @"https://swa.mail.ru/c/6"; // Ссылка на капчу
var Proxy = project.Variables["CurrentProxy"].Value; // Задаем прокси из переменной CurrentProxy
byte[] ImageBytes; // Тут создаем массив байт, ага?
IWebProxy proxyObject = new WebProxy(Proxy, true); // Устанавливаем
math.Proxy = proxyObject; // прокси
request.CookieContainer = new CookieContainer(); // Создаем контейнейр для кук, че бы это не значило
request.CookieContainer.Add(new Uri(CaptchaUrl), // Задаем куки
new Cookie("CookieName", "CookieValue"), // CookieName=CookieValue
new Cookie("CookieName2", "CookieValue2")); // и CookieName2=CookieValue2
HttpWebRequest CaptchaRequest = (HttpWebRequest)WebRequest.Create(CaptchaUrl); // Отправляем запрос на ссылочку с ранее заданными куками с использованием прокси
CaptchaRequest.UserAgent = @"mobmail android 6.4.0.23593 ru.mail.mailapp"; // Задаем юзерагент
WebResponse CaptchaResponse = CaptchaRequest.GetResponse(); // Получаем ответ
Stream ResponseStream = CaptchaResponse.GetResponseStream(); // Переводим в двоичный код
using (BinaryReader br = new BinaryReader(ResponseStream)) // Тут творится какая-то неведомая хрень
{
ImageBytes = br.ReadBytes(500000);
br.Close();
}
ResponseStream.Close();
CaptchaResponse.Close();
var base64 = Convert.ToBase64String(ImageBytes); // Получили капчу в base64, осталось отправить на распознание.
Последнее редактирование: