170 похожих чатов

Всем привет! В C++ не особо хорош, но задача: Отправить

post запрос на сервер вместе с картинкой в бинарном формате. Аналогия в питоне open(filename, 'rb')).


Пытаюсь использовать либу cpr и сделать так:

std::FILE *fp = std::fopen("aaa.jpg", "rb");


json::json j;
j["my_file"] = fp;

auto response = cpr::Post(
cpr::Url{url_for_frs_token},
cpr::Body{j.dump()
}
);


Кидает ошибку в этом моменте: j["my_file"] = fp;

Можете подсказать как решить эту проблему?

37 ответов

4 просмотра

https://t.me/supapro/991704

Alexander Karaev
https://t.me/supapro/991704

вот я так и пытаюсь сделать. Вот этот момент выдает ошибку j["my_file"] = fp;

Aidyn
вот я так и пытаюсь сделать. Вот этот момент выд...

Это неправильно. Почему ты решил так сделать?

Alexander Karaev
Это неправильно. Почему ты решил так сделать?

Особых причин нету, я просто пытаюсь решить это. А как правильно ?

Aidyn
вот я так и пытаюсь сделать. Вот этот момент выд...

а в каком формате принимает запрос сервер?

Aidyn
Особых причин нету, я просто пытаюсь решить это. А...

Правильно - прочитать документацию к библиотеке

C++ - не питон, здесь нельзя наугад писать код, не читая документацию, в надежде, что оно как-нибудь заработает

다니엘(줄리아)
а в каком формате принимает запрос сервер?

если на питоне , принимает в :'_io.BufferedReader' в С++ точно не знаю, пока с такой же логикой открывал файл: std::FILE *fp = std::fopen("aaa.jpg", "rb");

Aidyn
если на питоне , принимает в :'_io.BufferedReader'...

Код для отправки на питоне как выглядит?

다니엘(줄리아)
Код для отправки на питоне как выглядит?

data = {file': open('aa.jpg', 'rb')} response = requests.post(url, files=data)

Aidyn
и ?

Зачем в с++ так открывать?

Aidyn
data = {file': open('aa.jpg', 'rb')} response = re...

В таком случае нужно сначала прочитать файл в какой-то буфер, а потом записать из буфера в json

Alexius Bèlov
Зачем в с++ так открывать?

мне непринципиально как открывать, мне просто нужно отправить. Если есть путь как это можно сделать, был бы рад услышать)

Aidyn
хмм, а в какой буфер , есть варианты ?

В тот, который сможет принять библиотека для json (а это можно узнать из документации..)

Aidyn
data = {file': open('aa.jpg', 'rb')} response = re...

а вы уверены что он в бинарном виде отправляется?

Aidyn
Да

Тебе надо прочитать файл, запихнуть это в json и о править?

Aidyn
грубо говоря, да

std::istreambuf_iterator std::vector<char> и строка

Aidyn
Да

json::json j; std::ifstream input( "file.jpg", std::ios::binary ); std::copy( std::istreambuf_iterator<char>(input), std::istreambuf_iterator<char>( ), std::back_inserter(json.emplace("my_file", "").first));

다니엘(줄리아)
json::json j; std::ifstream input( "file.jpg", std...

Я бы в вектор с начала загнал сразу

Если не хорош в С++, то и не фиг таким заниматься.

다니엘(줄리아)
вряд ли сработает

вообще, в питоне в files он. Тут точно не знаю

Aidyn
вообще, в питоне в files он. Тут точно не знаю

а документацию почитать кто-то запрещает?

Aidyn
Особых причин нету, я просто пытаюсь решить это. А...

Как бы это долго объяснять очень... Ты как это представляешь-то? Зашёл так в чат, и быстренько выучил С++, и все библиотеки на нём...

Ilya Zviagin
Как бы это долго объяснять очень... Ты как это пре...

Не понимаю причем тут это. У меня есть вопрос, вот я и его задаю.

ну а что ты вообще тут хотел сделать? В JSON бывают 5 типов данных: число, булева величина, строка, массив и объект. FILE* ни к одному из этих типов не относится.

Alexander Karaev
В таком случае нужно сначала прочитать файл в како...

скорее всего в либе есть возможность читать напрямую из стрима...

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann ٩( 💢•̀ з•́)و Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта