@mansory333 said in Взаимодействие с пользователем:
@UserTrue Так нужен премиум, а у меня его нет.
Аха, ну ничего не поделаешь костылите тогда. Можете программно на странице сайта свою модалку создавать
Всем привет. Появилась необходимость загрузить фотографию пост запросом. Перечитал несколько тем по этому поводу на форуме, но все равно у меня не приходит нужный ответ. Отправляю запрос в таком формате:
------WebKitFormBoundary[[RANDOM_STRING]]
Content-Disposition: form-data; name="image"; filename="sss.jpg"
Content-Type: image/jpeg
base64:[[FILE_CONTENT]]
------WebKitFormBoundary[[RANDOM_STRING]]--
Картинку читаю в base64, однако постоянно приходит ответ
{"type":"internal-error","message":"ru.yandex.commune.a3.action.parameter.IllegalParameterException"}
Подскажите что делаю неправильно.
Вот такой запрос поймал в фидлере
Начало запроса:

Конец запроса:

Пробовал вставлять и в другом виде с значениями в конце запроса:
------WebKitFormBoundary[[RANDOM_STRING]]
Content-Disposition: form-data; name="image"; filename="sss.jpg"
Content-Type: image/jpeg
base64:[[FILE_CONTENT]]
------WebKitFormBoundary[[RANDOM_STRING]]
Content-Disposition: form-data; name="crop"
{"x":0,"y":0,"width":1115,"height":1115,"rotate":0}
------WebKitFormBoundary[[RANDOM_STRING]]--
Однако в таком случае статус ответа становится "-1" и приходит сообщение "Empty reply from server"
Вот как я читаю изображение:

Создаю рандомную строку:

Тело самого запроса:

@gurkin4
Перечитал, и попробовал его проект с некоторыми исправлениями запустить у себя
Но ответ такой же "{"type":"internal-error","message":"ru.yandex.commune.a3.action.parameter.IllegalParameterException"}"
Еще немного не понял про загрузку изображения (
@suvorov_jr2 попробуй читать файл сначала вот так

и отправляешь как есть без всяких base64:
@suvorov_jr2
Должно быть:
Остальное по скринам вроде все верно. Сам проект не смотрел
@suvorov_jr2 а может дело в другом? Почитайте про 400 ошибку
@Bigma
Все из вышеперечисленного попробовал, ничего не помогло. Появилась идея, что за загрузку картинки отвечает несколько запросов, потому что загрузка картинки проходит в несколько этапов.
@suvorov_jr2 Вот вы серьезно думаете что проблема в картинке ?
А мне кажется что с дзеном не все так просто, и передаваемые вами данные куда то о чем то, давно устарели.
И так вы уверены что ссылка должна быть точно такой ?
и все передаваемые данные опять же верны, и не генерируются при каждом запросе новые.
X-FP-Token
X-Csrf-Token
Session_id
WebKitFormBoundary[[RANDOM_STRING]] там точно должен быть [[RANDOM_STRING]] или это вы так решили ?
@Dodok
Другой ссылки я не наблюдаю. Значения токенов не меняются. На каждом аккаунте свой токен. Сессион айди входит в куки, но я пробовал загружал куки через HTTP клиент. Про значение WebKit: оно всегда генерируется 16 рандомными символами, а чтобы оно генерировалось самим дзеном в другом каком то запросе я не увидел.
@suvorov_jr2 снифишь запросы только на отправку картинки, лучше использовать фидлер евривеэ.
смотришь как запрос отправляется, и сверяешь так ли отправился запрос с той же картинкой из бас.
Находишь разницу, изучаешь почему. Но скорее всего в данном случае вредные советы по переводу в base64.
Эксперименты с одной и той же картинкой надо проводить. Например разные редакторы могут кучу всяких мета данных добавлять к картинке, дзен может их чистить сначала ...
@Bigma
Я в принципе так и делаю, одну и ту же картинку отправляю. И без перевода в base64 пробовал. А вот идея по чистке мета данных может быть актуальна. Перед загрузкой изображения каждый раз отслеживаются несколько запросов такого типа

я думаю может они как то связаны друг с другом, хотя этот запрос данных изображения не отправляет...
еще есть несколько запросов такого типа:

но они мне кажется не должны влиять на мой пост запрос, хотя может быть я ошибаюсь
@suvorov_jr2 смотри тело запроса - это первое что должно совпадать. То есть данные одной и той же картинки должны быть одинаковы. Если так, то уже все остальное...
@Bigma
хорошо, гляну завтра с утра - отпишу если получится, спасибо )
@suvorov_jr2 и как додок сказал возможно то что ты принимаешь за [[RANDOM_STRING]] это какой то токен, который возможно есть на странице формы добавления картинки .... Лень изучать, но как вариант.