C++ を使用して、バイナリ情報を含むポスト リクエストを送信しています。コードは次のようになります。
int binary[4] = { 1, 2, 3, 4 };
std::stringstream out;
out << "POST /address HTTP/1.1\r\n";
out << "Host: localhost\r\n";
out << "Connection: Keep-Alive\r\n";
out << "Content-Type: application/octet-stream\r\n";
out << "Content-Transfer-Encoding: binary\r\n";
out << "Content-Length: " << 4*sizeof(int) << "\r\n\r\n"; // 4 elements of integer type
そして、ソケットで開かれた接続にデータを送信します。
std::string headers = out.str();
socket.send(headers.c_str(), headers.size()); // Send headers first
socket.send(reinterpret_cast<char*>(&binary[0]), bufferLength*sizeof(int)); // And array of numbers
しかし、http-protocol を介して純粋なバイトを送信するのは間違っていると言われました。そうですか?たとえば、zero
プロトコルで使用されているため、0 ( ) を送信できません。
それが正しい場合 (ポストリクエストを処理して送信したデータを取得できないため)、代わりに何を使用できますか? おそらく、配列を16進またはbase64urlに変換しますか?
ありがとう。