HTTP响应头的C语言解析与批改
HTTP响应头的C语言解析与修改
本人目前正在研究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
本人目前正在研究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