私はPocoを使用してC++でHTTPクライアントを作成しており、サーバーがjpegイメージコンテンツ(バイト単位)で応答を送信する状況があります。レスポンスを処理し、それらのバイトからjpgイメージファイルを生成するにはクライアントが必要です。Poco C++を使用してHTTPサーバーの応答から画像コンテンツを読み取る方法は?
私は、適切な機能のためのポコライブラリを検索するが、私はいずれかを発見していません。それを行う唯一の方法は手動であるようです。
これは私のコードの一部です。応答を受け取り、入力ストリームを画像コンテンツの先頭で開始させます。
/* Get response */
HTTPResponse res;
cout << res.getStatus() << " " << res.getReason() << endl;
istream &is = session.receiveResponse(res);
/* Download the image from the server */
char *s = NULL;
int length;
std::string slength;
for (;;) {
is.getline(s, '\n');
string line(s);
if (line.find("Content-Length:") < 0)
continue;
slength = line.substr(15);
slength = trim(slength);
stringstream(slength) >> length;
break;
}
/* Make `is` point to the beginning of the image content */
is.getline(s, '\n');
どのように進めますか?
私は車輪の再発明はありません、私はポコを使用しています。 –
Leif、PocoにHTTPライブラリが含まれていて、それを使用している場合、Content-Lengthを解析する必要はありません。 –
手動で解析せずにPocoでContent-Lengthを見つける方法がわかっている場合は、なぜそれが何であるか教えてください。 –