perl http模块总结

perl发送http请求主要有 LWP,UserAgent, HTTP这些模块及其子模块组成
 
1.发送简单的http请求
只需要使用LWP::Simple模块即可
use LWP::Simple;
$content = get(url);  #返回得到的内容

getstore(url, filename);#将目标url的内容保存到filename中
head($url);   返回5个响应头($content_type, $document_length, $modified_time, $expires, $server)
 
这个模块的方法只能做一些基本的http请求操作,比如只能发送get请求,获取不到响应的详细信息
 
2.发送通用的http请求
这里用到3个主要的类
LWP::UserAgent,   HTTP::Request,  HTTP::Response,
需要注意的是 后面2个类继承HTTP::Headers和 HTTP::Message,  HTTP::Headers 提供了添加请求头,获取响应头的方法。 HTTP::Message提供了content方法,对于request对象,如果request是post请求,则该方法会设置http的请求内容; 对于response对象该方法会返回http响应的内容
 
标准的请求过程
$response = $ua->request($request);
 
在执行此方法之前可以对request对象进行设置, 方法执行完后
可以从response对象中获取内容,响应头等
 
UserAgent可以设置一些s全局选项, 比如timeout,max_redirect
 
下面是一个完整的例子
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
 
$ua = LWP::UserAgent->new(timeout=>180);
$request = HTTP::Request->new('POST'=>"http://mysite.com?name=john");
$request ->content_type('application/x-www-form-urlencoded');#post 必须有这句
$request->content('age=18');#post 请求参数
$request->header('Accept-Language', 'zh-CN,zh;q=0.8');
$response = $ua->request($request);
print $response->content();
print $response->status_line();
print $response->header('Content-Type');
 
 
总结:
通过使用 LWP::UserAgent,   HTTP::Request,  HTTP::Response, 这三个类可以满足发起大多数http请求,
还有一些类用于更方便的发送请求。
 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值