- Регистрация
- 21.10.2016
- Сообщения
- 5
- Благодарностей
- 0
- Баллы
- 1
Доброго времени суток.
Не нашёл ответа на форуме и в документации и решил написать.
Занимаюсь разработкой клиентского приложения (на с++), в котором необходимо взаимодействовать с CapMonster.
Имеются:
- сервер с CapMonster 2;
- приложение, взаимодействующее с сервером по средством http-запросов;
- сторонний модуль для CM2, установленный и запущенный на капмонстре.
Описание проблемы:
1. Моё приложение правильно работает с AudioSolveMedia-капчей: сервер корректно получает mp3-файл, отправленный через POST form/multi-part и возвращает правильный ответ по GET-запросу.
В данном случае в POST-запрос добавляю поля:
В случае если убрать название файла и ParallelMode - тогда запрос проходит. При изменении других параметров - сервер возвращает ERROR в ответе на POST-запрос, вместо записи вида "OK|{id запущенного процесса на Монстре}". Т.е. если не указывать CapMonsterModule=ZennoLab.AudioSolveMedia, то сервер автоматически не определяет через какой модуль разгадывать капчу.
2. При аналогичном запросе на модуль (который подключен и запущен в КМ на сервере) в ответе на POST-запрос получаю ERROR словно переданы неверные данные (ключ и сам файл проверял ни раз). Файлом изначально является url-encoded data: image/png, base64.
Пробовал 2 варианта:
a. Конвертировать картину в обычный бинарник (в unicode, ASCI, UTF8 ) и отправлять так же, как аудиофайл выше.
b. Не конвертировать/принудительно переконвертировать изображение в base64 url-encoded, посылая следующий запрос:
Итак. Вопросы:
1. Как формировать запрос на сервер так, что бы сервер сам определял тип нужного модуля? (видел в документации, что так можно но не понял как это реализовать).
Пробовал указывать CapMonsterModule ="", вообще не создавать это поле в запросе. Результат таких запросов всегда ERROR и для солвмедиа аудиокапчи, хотя с явным указанием - работает.
2. Как должен выглядеть полностью правильный http POST запрос при загрузке изображения на сервер с CapMonster (какие должны быть заголовки и что должно быть в теле)? (Или: что я делаю не так?)
PS: все запросы производятся на {ip сервера}/in.php
Не нашёл ответа на форуме и в документации и решил написать.
Занимаюсь разработкой клиентского приложения (на с++), в котором необходимо взаимодействовать с CapMonster.
Имеются:
- сервер с CapMonster 2;
- приложение, взаимодействующее с сервером по средством http-запросов;
- сторонний модуль для CM2, установленный и запущенный на капмонстре.
Описание проблемы:
1. Моё приложение правильно работает с AudioSolveMedia-капчей: сервер корректно получает mp3-файл, отправленный через POST form/multi-part и возвращает правильный ответ по GET-запросу.
В данном случае в POST-запрос добавляю поля:
Код:
CapMonsterModule=ZennoLab.AudioSolveMedia
method=post
key={ключ от капмонста}
ParallelMode=true
file=файл(в ASCI) // так же добавляю http-заголовки Content-Type="audio/mp3" и filename="audio.mp3"
2. При аналогичном запросе на модуль (который подключен и запущен в КМ на сервере) в ответе на POST-запрос получаю ERROR словно переданы неверные данные (ключ и сам файл проверял ни раз). Файлом изначально является url-encoded data: image/png, base64.
Пробовал 2 варианта:
a. Конвертировать картину в обычный бинарник (в unicode, ASCI, UTF8 ) и отправлять так же, как аудиофайл выше.
b. Не конвертировать/принудительно переконвертировать изображение в base64 url-encoded, посылая следующий запрос:
Код:
CapMonsterModule={НазваниеМодуля} // название получил следуя инструкции (пкм по модулю в списке подключённых модулей в КМ и выбором пункта "копировать полное имя модуля")
method=base64
key={ключ от капмонста}
ParallelMode=true // и без этого поля
file=файл(в base64) //http-заголовки Content-Type="image/png" [и filename="image.png]"
Итак. Вопросы:
1. Как формировать запрос на сервер так, что бы сервер сам определял тип нужного модуля? (видел в документации, что так можно но не понял как это реализовать).
Пробовал указывать CapMonsterModule ="", вообще не создавать это поле в запросе. Результат таких запросов всегда ERROR и для солвмедиа аудиокапчи, хотя с явным указанием - работает.
2. Как должен выглядеть полностью правильный http POST запрос при загрузке изображения на сервер с CapMonster (какие должны быть заголовки и что должно быть в теле)? (Или: что я делаю не так?)
PS: все запросы производятся на {ip сервера}/in.php