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 ответов

14 просмотров

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
В таком случае нужно сначала прочитать файл в како...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта