1

CPPREST SDK を使用して HipChat に画像をアップロードしようとしていますが、うまくいきません。画像を他のサーバーにアップロードする例はありますが、HipChat API はより複雑に見えます (これは非常に新しいため、ギャップを埋めることができませんでした...)。

HipChat REST API ドキュメント ( https://www.hipchat.com/docs/apiv2/method/share_file_with_room ) から:

ルームとファイルを共有します。

content-type application/json の単一部分とファイルを含む 2 番目の部分を使用して、リクエストを multipart/related としてフォーマットします。

注: ファイルを含む部分には、その部分の Content-Disposition ヘッダーに name="file" を含める必要があります。メッセージを含む application/json 部分はオプションであり、除外できますが、ファイル部分は必須です

リクエストの例:

ヘッダー:

コンテントタイプ: マルチパート/関連。境界=境界123456

体:

--boundary123456 コンテンツ タイプ: アプリケーション/json; 文字セット=UTF-8

Content-Disposition: 添付; 名前="メタデータ"

{"メッセージ": "このファイルのアップロードをチェックしてください!"}

--boundary123456 コンテンツ タイプ: 画像/png

Content-Disposition: 添付; 名前="ファイル"; ファイル名="upload.png"

「ここにファイルの内容が入ります」

--boundary123456--

set_body() メソッドを使用しようとしています: void web::http::http_request::set_body(const concurrency::streams::istream& stream, ....) しかし、ファイル ストリームを挿入する方法がわかりません上記のすべての複合体の内部。set_body() のドキュメントには、「これは、リクエストの本文を設定する他の手段と組み合わせて使用​​ することはできません」と書かれています。ファイルを文字列に読み込んで、「ファイル コンテンツがここに入る」と書かれている場所に埋め込み、ファイル ストリームで set_body() メソッドを使用する代わりに、他の set_body() メソッドのいずれかを使用する必要がありますか?

ありがとう、オファー

4

1 に答える 1