加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

LWP中文FAQ -- 转自兰花仙子 from CU

发布时间:2020-12-16 00:35:41 所属栏目:大数据 来源:网络整理
导读:? http://bbs.chinaunix.net/thread-1805600-1-1.html LWP中 文FAQ 若有变动或补充仙子会即时更新 1. 如何快速GET一个页面? ??use LWP::Simple; ??my $doc = get 'http://www.example.com/'; 复制代码 2. 标准的HTTP请求过程? ??use LWP::UserAgent; ? ??m

?

http://bbs.chinaunix.net/thread-1805600-1-1.html

LWP中 文FAQ
若有变动或补充仙子会即时更新


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

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



2. 标准的HTTP请求过程?



  1. ??use LWP::UserAgent;
  2. ?
  3. ??my $ua = LWP::UserAgent->new;
  4. ??my $req = HTTP::Request->new(GET => 'http://www.example.com/');
  5. ?
  6. ??my $res = $ua->request($req);
  7. ?
  8. ??if ($res->is_success) {
  9. ? ?? ?print $res->as_string;
  10. ??}else {
  11. ? ?? ?print "Failed: ",$res->status_line,"n";
  12. ??}
复制代码



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. ?
  4. ??my $req = HTTP::Request->new(POST => 'http://www.example.com/');
  5. ??$req->content_type('application/x-www-form-urlencoded');
  6. ??$req->content('key1=value1&key2=value2');
  7. ?
  8. ??my $res = $ua->request($req);
  9. ??print $res->as_string;
复制代码



7. 如何接受Cookie?



  1. ??use LWP::UserAgent;
  2. ??use HTTP::Cookies;
  3. ?
  4. ??my $ua = LWP::UserAgent->new;
  5. ??$ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt",
  6. ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? autosave => 1));
  7. ?
  8. ??my $req = HTTP::Request->new(GET => "http://www.example.com/");
  9. ?
  10. ??my $res = $ua->request($req);
  11. ??print $res->status_line;
复制代码



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


  1. ??use LWP::UserAgent;
  2. ??my $ua = LWP::UserAgent->new;
  3. ?
  4. ??my $req = HTTP::Request->new(GET => 'http://www.example.com/');
  5. ??$req->header('Cookie' => "key1=value1;key2=value2");
  6. ?
  7. ??my $res = $ua->request($req);
  8. ??print $res->status_line;
复制代码



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



  1. ??use LWP::UserAgent;
  2. ??my $ua = LWP::UserAgent->new;
  3. ?
  4. ??my $req = HTTP::Request->new(GET => 'http://www.example.com/');
  5. ??my $req->authorization_basic('user','password');
  6. ?
  7. ??my $res = $ua->request($req);
  8. ??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');
复制代码
本主题由 兰花仙子 于 2010-10-26 17:11 鉴定为 精华

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读