忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
1234下一页
最近访问板块 发新帖
查看: 34378 | 回复: 31

LWP中文FAQ [仙子整理] [复制链接]

论坛徽章:
0
发表于 2010-10-26 17:07 |显示全部楼层
LWP中文FAQ
若有变动或补充仙子会即时更新


1. 如何快速GET一个页面?

  1.   use LWP::Simple;
  2.   my $doc = get 'http://www.example.com/';
复制代码



2. 标准的HTTP请求过程?

  1.   use LWP::UserAgent;

  2.   my $ua = LWP::UserAgent->new;
  3.   my $req = HTTP::Request->new(GET => 'http://www.example.com/');

  4.   my $res = $ua->request($req);

  5.   if ($res->is_success) {
  6.       print $res->as_string;
  7.   }else {
  8.       print "Failed: ", $res->status_line, "\n";
  9.   }
复制代码



3. 如何得到HTTP响应状态码?

  1.   print $res->status_line;
复制代码



4. 如何得到HTTP响应的完整内容?

  1.   print $res->as_string;
复制代码



5. 如何得到HTTP响应的HTML解码后的内容?

  1.    print $res->decoded_content;
复制代码



6. 如何POST数据?

  1.   use LWP::UserAgent;
  2.   my $ua = LWP::UserAgent->new;

  3.   my $req = HTTP::Request->new(POST => 'http://www.example.com/');
  4.   $req->content_type('application/x-www-form-urlencoded');
  5.   $req->content('key1=value1&key2=value2');

  6.   my $res = $ua->request($req);
  7.   print $res->as_string;
复制代码



7. 如何接受Cookie?

  1.   use LWP::UserAgent;
  2.   use HTTP::Cookies;

  3.   my $ua = LWP::UserAgent->new;
  4.   $ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt",
  5.                                      autosave => 1));

  6.   my $req = HTTP::Request->new(GET => "http://www.example.com/");

  7.   my $res = $ua->request($req);
  8.   print $res->status_line;
复制代码



8. 如何在请求里发送指定的Cookie?

  1.   use LWP::UserAgent;
  2.   my $ua = LWP::UserAgent->new;

  3.   my $req = HTTP::Request->new(GET => 'http://www.example.com/');
  4.   $req->header('Cookie' => "key1=value1;key2=value2");

  5.   my $res = $ua->request($req);
  6.   print $res->status_line;
复制代码



9. 如何访问需要身份验证的网站(basic auth)?

  1.   use LWP::UserAgent;
  2.   my $ua = LWP::UserAgent->new;

  3.   my $req = HTTP::Request->new(GET => 'http://www.example.com/');
  4.   my $req->authorization_basic('user', 'password');

  5.   my $res = $ua->request($req);
  6.   print $res->as_string;
复制代码



10. 如何指定UserAgent的超时时间和版本?

  1.   my $ua = LWP::UserAgent->new;
  2.   $ua->timeout(5);
  3.   $ua->agent("Mozilla/8.0");
复制代码



11. 如何让UserAgent不follow重定向?

  1.   $ua->max_redirect(0);
复制代码


  参数表示跟随重定向的层数,0表示不跟随重定向。


12. 如果机器有多个IP,如何指定UserAgent使用哪个IP访问网络?

  1.   $ua->local_address('1.2.3.4');
复制代码



13. 直接使用IP访问网站,为什么会失败?

   那是因为没有加上Host头部,虚拟主机识别不出你的请求。
   在构造请求时,请加上Host头部:

  1.    my $req = HTTP::Request->new(GET => "1.2.3.4");
  2.     $req->header('Accept' => 'text/html',
  3.                  'Host' => 'www.example.com');
复制代码

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
发表于 2010-10-26 17:11 |显示全部楼层

论坛徽章:
0
发表于 2010-10-26 17:11 |显示全部楼层
俺自己加个保留哈。。经验总结,可供借鉴。

论坛徽章:
0
发表于 2010-10-26 17:16 |显示全部楼层
Addison.Wesley.Network.Programming.With.Perl

google这本书 perl的 sorcket http 之类的就明朗

论坛徽章:
0
发表于 2010-10-26 17:18 |显示全部楼层

论坛徽章:
0
发表于 2010-10-26 17:23 |显示全部楼层
搞不懂LWP为什么不默认支持HTTP持续连接。

论坛徽章:
45
15-16赛季CBA联赛之广夏
日期:2017-06-02 21:46:59天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:452015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
发表于 2010-10-26 17:33 |显示全部楼层
总结的很好啊,常用的都点到了。精华!!!

论坛徽章:
0
发表于 2010-10-26 21:28 |显示全部楼层

论坛徽章:
1
未羊
日期:2014-09-08 22:47:27
发表于 2010-10-27 10:39 |显示全部楼层
谢谢兰花儿。

论坛徽章:
0
发表于 2010-10-27 10:41 |显示全部楼层
{:3_187:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP