gpt4 book ai didi

c - fastcgi 请求的输入流中缺少字符

转载 作者:行者123 更新时间:2023-12-02 08:56:48 32 4
gpt4 key购买 nike

我正在尝试使用FastCGI(和restcgi)开发简单的RESTful api。当我尝试实现 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 一起使用(不确定这是否有任何区别)。

知道我做错了什么吗?

最佳答案

问题出在fcgio.cpp

fcgi_steambuf 类是使用 char_type 定义的,但 int underflow() 方法将其返回值向下转换为 (unsigned char ),它应该转换为 (char_type)

关于c - fastcgi 请求的输入流中缺少字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4280975/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com