模拟http请求 带 chunked解析办法二

时间:2024-04-30 11:10:06

以PHP代码为例

//这个是解析chuned块

get_chunk_data($fsock)

{

$data = '';

while(true)

{

$len = hexdec(fgets($fsock));

if($len == 0)

{

if(fgets($fsock) == "\r\n")

break;

}

$data .= fread($fsock, $len);

fgets($fsock);

}

return $data;

}

//这是PHP获取socket内容

while(!feof($fsock))

{

$temp_str = fgets($fsock);

//请求获取完成

if($temp_str == "\r\n")

{

//解析chuned块

$response_str .= $temp_str.get_chunk_data($fsock);

break;//直接跳出

}

$response_str .= $temp_str;

}

$response_str 最后就是解析的内容

还有个办法就是取消请求里的

"Accept-Encoding: gzip, deflate\r\n" 这个选项。有的服务器会选择不使用chuned数据传输

另外使用

POST /zhenaiMail/sendGreet.jsps HTTP/1.1 修改为

POST /zhenaiMail/sendGreet.jsps HTTP/1.0

使用http协议 1.0 也可以的。

jpg改rar模拟http请求 带 chunked解析办法二