@narekkar said in проблемы с multipart запросом:
или просто большой файл там остальные не показывает?
скорее всего эти данные просто не отображаются в снифере BAS. Попробуйте использовать Fiddler для проверки
Всем привет. Появилась необходимость загрузить фотографию пост запросом. Перечитал несколько тем по этому поводу на форуме, но все равно у меня не приходит нужный ответ. Отправляю запрос в таком формате:
------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]] это какой то токен, который возможно есть на странице формы добавления картинки .... Лень изучать, но как вариант.