- char buf[BUFSIZ];
- bool is_header = true;
- stringstream body_ss;
- while (is.getline(buf, BUFSIZ)) {
- std::string sbuf = buf;
- if (sbuf.length())
- if (is_header) {
- // TODO esto va al operator>> de HTTPHeaders.
- std::string::size_type pos = sbuf.find(":");
- if (pos == std::string::npos) {
- // FIXME poner mejores excepciones.
- throw "Wrong header";
- }
- headers[sbuf.substr(0, pos)] = sbuf.substr(pos + 1);
- } else {
- body_ss << buf << std::endl;
- }
- } else {
- if (is_header) {
- is_header = false;
- } else {
- body_ss << buf << std::endl;
- }
- }