base64 でエンコードされた文字列として xmlrpc 経由でファイルを送信しようとしています。
QFile sourceFile("/home/alexander/test.jpg");
QByteArray srcRawData = sourceFile.readAll();
QByteArray base64Encoded = srcRawData.toBase64();
std::string strTest(base64Encoded);
xmlrpc_c::paramList sampleAddParms;
sampleAddParms.add(xmlrpc_c::value_string("113957571"));
sampleAddParms.add(xmlrpc_c::value_string(strTest));
sampleAddParms.add(xmlrpc_c::value_string("test.jpg"));
これをサーバーに送信すると、クライアントがエラーをスローしました: RPC 応答が失敗を示しています。パラメーターの型が正しくありません (ap_adddocument): パラメーター データに base64 が必要ですが、(Python) を取得しました。
これは xmlrpc_c::value_* のクラス定義です http://xmlrpcpp.sourceforge.net/doc/classXmlRpc_1_1XmlRpcValue.html
代わりに xmlrpc_c::value_bytestring() を使用する必要があることに気付きました。C++ でファイルをバイト文字列に変換するにはどうすればよいですか? 私はすでにByteArrayを持っています。
私はここで途方に暮れています..