@Kinokio said in Как отправлять JSON запрос:
Я так понимаю надо это делать через POST запрос? Или я не прав?
Вам нужно установить content-type на json
Доброго времени суток, господа. Задача вроде бы не сложна, но с интерфейсом я не справился, видимо не дано
Суть такова, что у меня есть видео .mp4 которое я должен слать кусками до 5мб в пост запросах. Я уже сделал node.js скрипт, который мне делает из видео бинарку и делит его на эти чанки до 5мб и сохраняет их в список в бинарке, либо в бинарке закодированной в base64. Более того, я сделал второй node.js скрипт который делит это все на чанки до 5мб и сохраняет в бинарке во временные файлы .bin
Проблема же в том, что мои скудные познания баса не ориентированы на такие тонкости и я не сумел использовать ни тот ни другой скрипт должным образом и отправить бинарку в запросе. Я нашел темы где умельцы подсказывали как отправить файл в запросе, но, как я понял, это сработало бы в том случае если бы я слал все видео целиком, а мне же нужно сначала разделить его на куски эти до 5мб в бинарке, а как такое слать, я, увы, не разобрался
Сам запрос выглядит примерно так в фаерфоксе:
------geckoformboundaryec956ef896cab4c92fc105aa20a2e20
Content-Disposition: form-data; name="media"; filename="blob"
Content-Type: application/octet-stream
"тут бинарные данные"
------geckoformboundaryec956ef896cab4c92fc105aa20a2e20--
Следовательно, основной контент тайп - multipart/form-data
Подтип внутри пост даты - application/octet-stream
Это мой первый вопрос здесь, поэтому прошу прощения если спрашиваю не там, где нужно и прошу прощения в таком случае. Буду очень признателен любой малейшей подсказке или критике
@redwine Нажмите на вопросик на поле в интерфейсе для отправки данных там есть примеры. Нужно данные читать в base64, пример из этого вопросика:
If file has binary format, you need to read it in base64 encoding and append 'base64:' before variable.
Example #6. Upload binary file.
--randomstringboundary
Content-Disposition: form-data; name="test"; filename="filename.bin"
Content-Type: application/octet-stream
base64:[[VARIABLE_WITH_BASE64_ENCODING]]
--randomstringboundary--
с multipart лучше запрос составлять через

Удобнее будет
@usertrue спасибо большое, сделал как вы сказали, но к сожалению все равно не помогло. В ответе получаю в хедере total-bytes: 0 (показатель того, что не прочитало мой кусок бинарки этот) и в сниффере баса не видно что я в пост дате отправил, предположу что из за бинарки. Сейчас пост дата выглядит у меня следующим образом
------geckoformboundaryec956ef896cab4c92fc105aa20a2e20
Content-Disposition: form-data; name="media"; filename="blob"
Content-Type: application/octet-stream
base64:[[LIST_ELEMENT]]
------geckoformboundaryec956ef896cab4c92fc105aa20a2e20--
В переменной [[LIST_ELEMENT]] точно содержится бинарка в бейс64. Чуть позже проверю через wireshark чтобы знать точно, но пока что ощущение что как то не так я бинарные данные передаю и можно проще :(
@Valerax спасибо большое за совет, но уже попробовал и не увенчалось успехом :(
там либо нельзя указать дополнительный контент тайп - октед-стрим, либо я в очередной раз не справился с интерфейсом. Еще пробовал как раз таки через этот конструктор составлять запрос, указывая там чтоб отправить свой файл с бинаркой .bin и тогда вроде как тоже оно не читало по какой то причине. Понимаю что начинает выглядеть уже будто проблема в моих данных
@Valerax спасибо, знаю про запись запросов. Бас не видит бинарные данные по какой то причине ни в сниффере, ни в браузере в нетворк пока не включу их видимость в нем, ни в записанных запросах. Более того, он такие запросы записывает как гет запрос с методом пост(
@Valerax единственная проблема и вопрос - как передать бинарные данные в пост дате в басе при типе содержимого multipart/form-data. В node.js это делается без танцев с бубном, а тут я уже второй день не могу понять в каком виде должны быть данные - в бинарном в файлах .bin, или в бинарном в base64 в переменных и как это потом отослать в пост дате. Я и то и другое пробовал через добавление файла, через бейс64 и как угодно, но по какой то причине не работает и не передаются данные либо вообще, либо должным образом. В node.js те же данные передаются в запросе корректно
Вопрос решен, большое спасибо за советы
Если есть бинарный файл .bin и нужно его отправить в пост дате в мультипарт/дата, то можно просто читать его в base64 в переменную, далее эту переменную указывать в пост дате
------WebKitFormBoundary[[RANDOM_STRING]]
Content-Disposition: form-data; name="то что у вас"; filename="то что вам нужно, тут не особо важно"
Content-Type: application/octet-stream
base64:тут ваша переменная с бинарными данными в бейс64
------WebKitFormBoundary[[RANDOM_STRING]]--
Я же пытался изначально ставить туда в пост дату путь к файлу