Ich versuche, ein Bild mit CPPREST SDK ohne Erfolg auf HipChat hochladen. Es gibt Beispiele für das Hochladen von Bildern auf andere Server, aber die HipChat-API scheint komplexer zu sein (da ich neu darin bin, konnte ich die Lücken nicht füllen ...).Hochladen eines Bildes auf HipChat mit CPPREST SDK
Von HipChat REST-API-Dokumentation (https://www.hipchat.com/docs/apiv2/method/share_file_with_room):
Teile einer Datei mit dem Raum.
Formatieren Sie die Anforderung als multipart/related mit einem einzelnen Teil der Content-Type-Anwendung/json und einem zweiten Teil, der Ihre Datei enthält.
HINWEIS: Der Teil, der die Datei enthält, muss name = "file" in der Content-Disposition-Kopfzeile des Teils enthalten. Der application/json Teil eine Nachricht enthalten ist optional und kann ausgeschlossen werden, aber eine Datei Teil erforderlich ist
Beispiel Anfrage:
Headers:
Content-Type: multipart/related; boundary = boundary123456
Körper:
--boundary123456 Content-Type: application/json; charset = UTF-8
Inhalt-Disposition: Anhang; name = "Metadaten"
{ "message": "Schauen Sie sich diese Datei laden!"}
--boundary123456 Content-Type: image/png
Content-Disposition: attachment; name = "Datei"; filename = "upload.png"
"Dateiinhalt geht hier"
--boundary123456--
Ich versuche, die set_body() -Methode zu verwenden: Leere web :: http :: http_request :: set_body (const Nebenläufigkeit :: Streams :: istream & Stream, ....) aber ich kann nicht herausfinden, wie Sie den Datei-Stream in alle oben genannten komplexen Körper einfügen. Die Dokumentation von set_body() sagt: "Dies kann nicht in Verbindung mit anderen Mitteln zum Festlegen des Körpers der Anfrage verwendet werden". Muss ich die Datei in eine Zeichenfolge einlesen und dort einbetten, wo "Dateiinhalt wird hier" angezeigt wird, und eine der anderen set_body() -Methoden verwenden, anstatt die set_body() -Methode mit dem Dateistream zu verwenden?
Danke, Ofer
Klasse https://github.com/hoangthienan/go1-hungrybot/blob/master/src/Services/RoomService.php – hoangthienan