fcgi与cgi对post请求的不同处理

如果是cgi,那么可以从stdin中直接去post上来的参数:

 

len = atoi(getenv("CONTENT_LENGTH"));

if(len < 0 || len >= MAX_CONTENT_LENGTH)

return;

 

cin >> m_content;

 

 

如果是fcgi,那么需要从FCGI_stdin中读取,必须用FCGI_fgetc来操作:

 

len = atoi(getenv("CONTENT_LENGTH"));

if(len < 0 || len >= MAX_CONTENT_LENGTH)

return;

char   InputBuffer[4096] = {0};

int i = 0; 

int x;

while( i < len )   

{  /*从stdin中得到Form数据*/    

x = FCGI_fgetc(stdin);  

if( x == EOF )  

break; 

InputBuffer[i++] = x;  

}  

InputBuffer[i] = '/0';  

len = i; 

m_content = InputBuffer;

你可能感兴趣的:(cgi,IM)