我希望了解人们如何编写一个快速(小)但灵活的http客户端。我所说的quick并不是指太多的代码(我会让你自己决定这意味着什么),最好使用内置的语言函数,而不是下载的或自定义的库,这样套接字编程的基本知识应该足以理解代码的工作方式。灵活的意思是你应该能够很容易地操作输入的数据。我自己的版本是这样的
#!/usr/bin/perl
use Socket;
use HTML::Parse;
socket(SOCKH, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || die $!;
connect(SOCKH,sockaddr_in(80,inet_aton('www.example.com'))) || die $!;
$old_fh = select(SOCKH);
$|=1;
select($old_fh);
print SOCKH "GET / HTTP/1.0\n\n";
while (<SOCKH>) {
$response .= $_;
}
print parse_html($response)->format;
close(<SOCKH>);
这只是一个快速的客户端,我将很快为http/1.1编辑,或者如果你有关于如何更好地遵守它的建议,请分享!
编辑:对我的代码进行更新,使用sinan unur建议的lwp:
#!/usr/bin/perl
use LWP::Simple;
use HTML::Parse;
$data = parse_html( get( 'www.example.com' ) )->format;
foreach $line ( $data ) {
print $line; // or any other line-based operation
}
最佳答案
Perl已经LWP。我建议你用它。