使用http1.1进行传输的时候,发觉接受的数据多了0fe8,最后又多了0000.请问怎么解决
数据受到后,多了很多东西.例子:
HTTP/1.1 200 OK
Date: Mon, 01 Nov 2004 02:36:53 GMT
Server: WebLogic WebLogic Server 7.0 SP2 Sun Jan 26 23:09:32 PST 2003 234192
Transfer-Encoding: Chunked
Set-Cookie: Result=0fname=RZ0010151010962170406X20041029113900.datfilecount=1
0fe8
实际数据....
0d08
实际数据....
0000
其中0fe8,0d08,0000是那里来的?怎么处理啊!
问题点数:0、回复次数:17Top
1 楼kingzai(stevenzhu)回复于 2004-11-04 10:48:30 得分 0
读取和发送http方法的代码呢?
你是用post 还是get 方法
跟踪一下发送和接收缓冲区的内容Top
2 楼Chiyer(星羽)回复于 2004-11-04 10:55:49 得分 0
每次都这样吗。。
如果你对这几个数据不感兴趣的话。。可以过滤掉Top
3 楼caferd(虽然我不帅,可惜MM爱)回复于 2004-11-04 11:02:11 得分 0
使用POST方法,过滤的话,因为收到是二进制的处理起来很麻烦
Top
4 楼czxiayu(czxiayu)回复于 2004-11-04 11:51:24 得分 0
这是Chunked回复方式的数据格式
0fe8,0d08这些表示后续的数据长度,最后一个0表示数据结束.你可以查看一些http协议中关于chunked方式的描述
Top
5 楼gdy119(夜风微凉)回复于 2004-11-04 12:39:15 得分 0
upTop
6 楼caferd(虽然我不帅,可惜MM爱)回复于 2004-11-04 16:20:02 得分 0
czxiayu(czxiayu)如何不需要这些数据呢?Top
7 楼kingzai(stevenzhu)回复于 2004-11-04 17:01:46 得分 0
分块编码(chunked encoding)传输方式是HTTP 1.1协议中定义的Web用户向服务器提交数据的一种方法,当服务器收到chunked编码方式的数据时会分配一个缓冲区存放之,如果提交的数据大小未知,客户端会以一个协商好的分块大小向服务器提交数据。
改一下http头应该就可以了
Top
8 楼caferd(虽然我不帅,可惜MM爱)回复于 2004-11-05 10:12:07 得分 0
kingzai() 怎么修改http啊,请告诉我.不胜感激!包括如何分拆chunked encoding的方法Top
9 楼kingzai(stevenzhu)回复于 2004-11-05 10:56:49 得分 0
贴出你发送和接收的代码,是否用wininet直接写的,直接写就可以直接写包头Top
10 楼caferd(虽然我不帅,可惜MM爱)回复于 2004-11-05 14:58:09 得分 0
我用Winsock处理的,就是组装包头发送
CString strHead=
"GET /GetFileServlet HTTP/1.1\r\n"
"Proxy-Connection: Keep-Alive\r\n";
CString strHost;
strHost.Format("HOST:%s\r\n",g_strServerName);
strHead=strHead+strHost+"Accept: www/source, text/html, video/mpeg, image/jpeg, image/x-tiff\r\n";
strHead+="Accept: image/x-rgb, image/x-xbm, image/gif, */*, application/postscript\r\n";
strHead+="Content-type: application/x-www-form-urlencoded\r\n";
后面时发送了,这样受到的数据就有那些东西Top
11 楼zxwitsme(Program is an art!)回复于 2004-11-05 15:03:51 得分 0
upTop
12 楼Magnus(小楼一夜听春雨)回复于 2004-11-05 15:13:29 得分 0
upTop
13 楼kingzai(stevenzhu)回复于 2004-11-05 17:26:03 得分 0
我用sniffer抓的访问sina的报文如下:
GET /allnews/ddt/ddt.html HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.sina.com.cn
我不知道你访问的是哪些数据,你最好自己也用sniffer抓份报文,看是哪的问题Top
14 楼caferd(虽然我不帅,可惜MM爱)回复于 2004-11-05 17:33:16 得分 0
这是我们自己的平台,在http头后面会跟上实际的文件数据.但是多了东西,所以请大家帮忙了Top
15 楼kingzai(stevenzhu)回复于 2004-11-05 17:52:18 得分 0
那用http的post方法啊Top
16 楼Lightest(一闪而过)回复于 2004-11-06 01:22:32 得分 0
搞不懂你,看看http文档搞清楚chunked传输模式,组装数据块不是什么难事.Top
17 楼XmagicX(一瞬已成永恒 http://codeday.com)回复于 2004-11-06 07:43:32 得分 0
markTop




