PDA

Просмотр полной версии : проверка капчи в post запросе



zic991
27.08.2016, 14:30
Подскажите Пожалуйста как проверить капчу, получить "validCaptcha":true

код программы:

&НаСервере
Процедура ПроверкаНаСервере( )

Сервер = "dkbm-web.autoins.ru";
Путь = "/dkbm-web-1.0/osagovehicle.htm";

Попытка
Соединение = Новый HTTPСоединение(Сервер);
//соединение.ПолучитьЗаголо� �ки(
Исключение
Server.ОбработатьИсключение("Не удалось установить соединение с сервером:" +Сервер
+ Символы.ПС + ИнформацияОбОшибке().Описа� �ие);
//Возврат Ложь;
КонецПопытки;

Попытка
Ответ = Соединение.GET(Новый HTTPЗапрос("dkbm-web-1.0/osagovehicle.htm"));
Исключение
Server.ОбработатьИсключение(О писаниеОшибки());
//Возврат Ложь;
КонецПопытки;

JSESSIONID =лев( WebServer.json_encode(Ответ.Заголовк� � ["Set-Cookie"]),44);

Заголовки = Новый Соответствие();
Заголовки.Вставить("Accept","image/webp,image/*,*/*;q=0.8");
Заголовки.Вставить("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
Заголовки.Вставить("Cookie","JSESSIONID="+JSESSIONID);
Заголовки.Вставить("Host","dkbm-web.autoins.ru");
Заголовки.Вставить("Referer","http://dkbm-web.autoins.ru/dkbm-web-1.0/osagovehicle.htm");

Попытка
Ответ1 = Соединение.GET(Новый HTTPЗапрос("dkbm-web-1.0/simpleCaptcha.png",Заголовки));
Исключение
Server.ОбработатьИсключение(О писаниеОшибки());
КонецПопытки;
КартинкаКапчи = Ответ1.ПолучитьТелоКакДвои чныеДанные();
Капча = ПоместитьВоВременноеХрани лище(КартинкаКапчи, УникальныйИдентификатор);



КонецПроцедуры

&НаКлиенте
Процедура Проверить(Команда)
Заголовки1 = Новый Соответствие();

Заголовки1.Вставить("Accept","application/json");
Заголовки1.Вставить("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
Заголовки1.Вставить("Cookie","JSESSIONID="+JSESSIONID);
Заголовки1.Вставить("Connection","keep-alive");
Заголовки1.Вставить("Host","dkbm-web.autoins.ru");
Заголовки1.Вставить("Referer","http://dkbm-web.autoins.ru/dkbm-web-1.0/osagovehicle.htm");

ПараметрыЗапроса = Новый Структура();
ПараметрыЗапроса.Вставить("serialOsago",СерияПолиса);
ПараметрыЗапроса.Вставить("numberOsago",НомерПолиса);
ПараметрыЗапроса.Вставить("dateRequest",ДатаПроверки);
ПараметрыЗапроса.Вставить("answer",ТекстКапчи);

СодержимоеЗапроса = Новый HTTPЗапрос("/dkbm-web-1.0/osagovehicle.htm", Заголовки1);
СодержимоеЗапроса.Установ� �тьТелоИзСтроки("serialOsago="+СерияПолиса+"&numberOsago="+НомерПолиса+"&dateRequest="+ДатаПроверки+"&answer="+ТекстКапчи);


Соединение = Новый HTTPСоединение("dkbm-web.autoins.ru");

Попытка
Ответ2 = Соединение.POST(СодержимоеЗа проса);

Исключение
Server.ОбработатьИсключение(О писаниеОшибки());
//Возврат Ложь;
КонецПопытки;

Результат = Ответ2.ПолучитьТелоКакСтро ку()+ Ответ2.КодСостояния;

КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии()

ПроверкаНаСервере( );
КонецПроцедуры