|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.10.2015, 09:47 | #1 |
Регистрация: 19.03.2013
Сообщений: 7
|
Delphi (Indy + CapMonster + Antigate=Error)
Привет всем. Уже неделю вожусь с проблемой. Есть программа, работающая с антигейтом, уже годами все работало как часы, но вот я решил подключить свою программу к CapMonster'у, и по какой-то причине он просто отказывается обрабатывать картинки. Он их вроде как принимает, потому что на первой демке кончился лимит в 1к бесплатных капч, но в логе вообще не отображает картинки. В ответ же приходит "ERROR"(GET запрос капчи нормально обрабатывается, а Post нет)
Возможно, проблема в кодировке, в CapMonster используется 1251, но я не знаю точно какая в Delphi, а точнее в MultiPartFormData. Избавился от проблемы, что idhttp отключает протокол 1.1 и включает 1.0. Но это не помогло. Пробовал подключать StringStream. Но видимо что-то делаю не так. Прикрепляю два файла, в первом Raw Stream от программы на C++, в которой все работает. Второй от моей программы. Вот примерный исходник, просто их уже вариантов 10-15 было: Код:
|
04.10.2015, 23:30 | #2 |
Регистрация: 19.03.2013
Сообщений: 7
|
Новости
Узнал, что проблема в том, что картинка кодируется в бинарный тип, как закодировать ее в Base64? Ну это я еще могу сделать, но не понимаю как правильно оформить запрос, чтоб прикрепить этот файлик в Base64
|
05.10.2015, 00:14 | #3 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 360
|
По поводу Base64:
http://www.cyberforum.ru/delphi-begi...ead359019.html http://www.delphisources.ru/pages/fa...de_decode.html В гугле куча примеров. Насчет того как прикрепить, по идеи файлы отправляются по HTTP через кодирование в Base64 и в POST запрос. Смотрите API. |
05.10.2015, 00:54 | #4 |
Регистрация: 19.03.2013
Сообщений: 7
|
Спасибо за ответ. С base64 я разобрался(оказалось ошибку в запросе допустил и ходил вокруг нее), точнее как закодировать, даже через онлайн декодеры проверял, на выходе правильная картинка.
Но по-прежнему остается проблема с прикреплением файла. Пробовал записать кодированную строку в файл и его прикреплять в MultiPartFormDataStream через AddObject, антигейт такой способ устраивает, однако через сниффер вижу именно для Файла Content-Transfer-Encoding=binary. Мне же обязательно нужно base64. Есть две мысли: 1) прикреплять по-другому (не знаю как) 2) использовать какой-нибудь StringStream ( тоже не знаю как в данном случае правильно) Очень надеюсь на вашу помощь upd. Еще забыл, нужно не только закодированную картинку передать, но и несколько параметров запроса |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
AntiGate + IdHTTP = ? | greenisius | C/C++ Сетевое программирование | 3 | 17.11.2013 14:36 |
Ошибка socket error # 10051 network is unreachable в Indy IdSMTP | remont_it, | C++ Builder | 0 | 21.01.2013 22:31 |
INDY + HTTPS + SSL = Socket Error #10061 | yoshimidzo | Работа с сетью в Delphi | 12 | 10.01.2013 12:57 |
Antigate | alex0097 | Общие вопросы Delphi | 3 | 18.09.2012 18:07 |
У меня borland developer studio delphi 2006 так вот как вставить на вкладку tool palette компоненты Indy Clients и Indy Misc | Artem_host | Общие вопросы Delphi | 0 | 01.02.2012 09:55 |