Delphi. Uploading to Keep2Share. Half Successfull Atempt…

Поступил ко мне небольшой заказ на автоматизацию заливки файлов на файлообменник Keep2Share.cc Всего было у меня 2 попытки делания данного проекта. Сначала опишу неудачную попытку, а в другом посте удачную. Задача стояла таким образом, чтобы сделать заливку напрямую из Delphi программы на сервере Keep2Share.cc

К счастью, у Keep2Share.cc есть API.  Это API работает прекрасно со скриптами PHP,  о чем приводится пример на той же странице с API.

Вот моя попытка, скажу сразу, удалось почти всё, кроме последнего шага, который мне показался самым трудным.

Согласно API все транзакции проходят в JSON формате, я научился получать токен авторизации, отправлять тестовый запрос, а вот загружать файл не научился, хотя удалось получить от сервера всю необходимую информацию для отправки файла на сервер. Проблема оказалась в том, что я не смог до конца корректно перевести CURL запрос в INDY. cURL я так понимаю это библиотека, аналогичная InDY, только для C подобных языков.

Получение токена авторизации

77

Тестовый запрос на сервер

В API есть тестовый запрос на сервер

78

Попытка загрузить файл напрямую

79

Тут суть такова – отправляем запрос getUploadFormData – это запрос на получение данных от сервера. Далее по этим данным строим новый запрос.

По сути, нужно переписать PHP код из API на Delphi

Если смотреть в HTTPAnalyzer, то при попытке отправить файл происходит вот что

80

Я попытался повторить это в Delphi, но где-то не дожал с параметрами. Так как сервер ругается именно на неверные параметры. Кто пойдет по моим следам, если Вам нужна будет прямая загрузка из Delphi – можете просто продолжить и довести до конечного результата.

У меня же конечный результат есть, но я сделал несколько по другому, о чем напишу в следующем посте.

Я здесь оставлю черновой код, как есть. Тут всякие лишние переменные, не все убирается из памяти в конце, но это лишь потому, что я пытался достичь конечного результата и вся энергия уходила на это. Код я прибираю обычно по достижении результата.

В общем стопорнулся в вот на этом…

81

Посидев какое-то время на этой проблеме, я пришел к выводу, что в моих условиях есть более простой и изящный путь – загрузить все по HTTP протоколу на VPS сервер, на котором установлен IIS с PHP и уже собственно оттуда загружать на k2s.

 

This entry was posted in Delphi, Indy, Без рубрики. Bookmark the permalink.