免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2079 | 回复: 5
打印 上一主题 下一主题

perl 发送web请求时connection问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-15 14:06 |只看该作者 |倒序浏览
将请求发送到web,代码如下
$ua         = LWP::UserAgent->new() or die print"error!\n";
$response = $ua->request(POST 'http://xyy.com/UserLogin.do',
                        'Accept'=> 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*',
                        'Referer'=> 'http://xyy.com/',
                        'Accept-Language'=> 'zh-cn',
                        'Content-Type'=> 'application/x-www-form-urlencoded',
                        'Accept-Encoding'=> 'gzip, deflate',
                        'User-Agent'=> 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)',
                        'Host'        => 'xyy.com',
                        'Connection' => 'Keep-Alive',
                        'Cache-Control'        => 'no-cache',
                        'Content' => ['state' => 'login',
                                'username'    => 'bob',
                                'password'    => '123',
                                'selLanguage' => 'zh_CN',
                                'lawEmp'      => 'on',
                                'B1'              => '%AF%A2%E7%86%8E%E5%AE%B9]']
                        ) or die "error request\n";

问题是,我将Connection 置为Keep-Alive,为什么我发送请求后,返回内容后连接就关闭了,从我捕获的数据包来看,Connection 的值并不是Keep-Alive,而是奇怪的 Keep-Alive, TE, close,请各位大侠赐教

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-06-15 16:45 |只看该作者
HTTP不是就是这样...Request/Response..然後就断线了..
Keep-Alive我不知道这个HEADER是干嘛的....但是连接断掉是正常的..

论坛徽章:
0
3 [报告]
发表于 2007-06-15 16:51 |只看该作者
不是吧,我用浏览器访问时,Connection 为Keep-Alive,网站返回的数据并没有Connection:close,也就是说,连接不会断开,否则,如果网站需要密码登陆,一登陆然后就断开………………

论坛徽章:
0
4 [报告]
发表于 2007-06-16 02:55 |只看该作者
Keep-Alive 是服务器说了算数的
呵呵:)

论坛徽章:
0
5 [报告]
发表于 2007-06-16 07:56 |只看该作者
在PHP的fsockopen中,如果加上 Connection: Keep-Alive ,那么,不能用 feof 来判断结束,fread会一直等待数据

试试 $ua->default_headers->push_header('Connection' => 'Keep-Alive');

论坛徽章:
0
6 [报告]
发表于 2007-06-18 14:10 |只看该作者
昏,自己鼓捣了老久解决了,原来要keep-alive,需要建立一个缓重区
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP