Я безуспешно пытаюсь загрузить изображение в HipChat с помощью CPPREST SDK. Есть примеры для загрузки изображений на другие серверы, но API HipChat кажется более сложным (будучи новичком в этом, я не мог заполнить пробелы...).
Из документации HipChat REST API (https://www.hipchat.com/docs/apiv2/method/share_file_with_room):
Поделитесь файлом с комнатой.
Отформатируйте запрос как составной/связанный с одной частью приложения/json типа контента и второй частью, содержащей ваш файл.
ПРИМЕЧАНИЕ. Часть, содержащая файл, должна содержать name=file в заголовке Content-Disposition части. Часть application/json, содержащая сообщение, является необязательной и может быть исключена, но часть файла обязательна.
Пример запроса:
Заголовки:
Content-Type: multipart/related; граница=граница123456
Тело:
--boundary123456 Content-Type: application/json; кодировка = UTF-8
Content-Disposition: вложение; имя = метаданные
{сообщение: Проверьте загрузку этого файла!}
--boundary123456 Тип содержимого: изображение/png
Content-Disposition: вложение; имя=файл; имя_файла=загрузить.png
содержимое файла идет сюда
--граница123456--
Я пытаюсь использовать метод set_body(): void web::http::http_request::set_body(const concurrency::streams::istream& stream, ....), но не могу понять, как вставить файловый поток внутри всего вышеперечисленного сложного тела. В документации set_body() сказано: это нельзя использовать в сочетании с любыми другими средствами установки тела запроса. Нужно ли мне читать файл в строку и вставлять туда, где указано, что содержимое файла находится здесь, и использовать один из других методов set_body() вместо использования метода set_body() с файловым потоком?
Спасибо, Офер