HTTP响应头的C语言解析与批改

HTTP响应头的C语言解析与修改
本帖最后由 sruru 于 2012-11-05 11:29:46 编辑
   本人目前正在研究http代理的c语言实现,目前测试需求是,获取http响应状态代码,比如200,304等,然后调用函数修改http响应状态码,比如,获取200,修改为206,匹配公司客户端程序使用。
   我遇到的问题是,开发如下代码
     if (statusFlag) {
         buf = setStatusCode(buf,strlen(buf),statusCode);
     } 

我调用如下的函数,等于不做任何修改,在使用fiddler测试时,发现没有entity-body,content-length头为0,fiddler提示:“UnGzip fail”,块的长度与它的补集不匹配。
char *setStatusCode(char *buf, unsigned int size, char* code) {
    char *s, *t, *newBuf;
    newBuf = malloc(size + 1);
    memcpy(newBuf,buf,size);
    newBuf[size] = '\0';
    printf("Old size is:%d,new size is:%d\n",strlen(buf),strlen(newBuf));
    return newBuf;
}


求各位help~~

------解决方案--------------------
我之前也写过,c语言解析http协议的代码~
------解决方案--------------------
我之前也曾想写一个Prox呢,但是没有时间去弄
关注中。
------解决方案--------------------
我看这有HTTP实现WebClnt,看有没你需要的。
http://download.csdn.net/detail/geoff08zhang/4571358