Я пытаюсь разработать простой RESTful API, используя FastCGI (и restcgi). Когда я попытался реализовать метод POST, я заметил, что входной поток (представляющий тело запроса) неверен. Я провел небольшой тест и, похоже, когда я пытаюсь прочитать поток, принимаются только все остальные символы.
Тело отправлено: name=john&surname=smith
Получено: aejh&unm=mt
Я перепробовал больше клиентов только для того, чтобы убедиться, что это не клиент, который связывается с данными.
Мой код:
int main(int argc, char* argv[]) {
// FastCGI initialization.
FCGX_Init();
FCGX_Request request;
FCGX_InitRequest(&request, 0, 0);
while (FCGX_Accept_r(&request) >= 0) {
// FastCGI request setup.
fcgi_streambuf fisbuf(request.in);
std::istream is(&fisbuf);
fcgi_streambuf fosbuf(request.out);
std::ostream os(&fosbuf);
std::string str;
is >> str;
std::cerr << str; // this way I can see it in apache error log
// restcgi code here
}
return 0;
}
Я использую модуль fast_cgi с apache (не уверен, что это что-то меняет).
Есть идеи, что я делаю не так?