编写一个小而灵活的HTTP客户端

Sea*_*her 2 ruby python perl http

我正在寻找人们如何编写一个快速(小)但灵活的HTTP客户端.快速我的意思是代码不多,(我将由你来决定这意味着什么),并且最好使用内置语言函数而不是下载或自定义库,这样套接字编程的基本知识应该是足以理解代码的工作原理.灵活的我的意思是你应该能够轻松地操纵传入的数据.我自己的版本就是这样的

#!/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>);
Run Code Online (Sandbox Code Playgroud)

这只是一个快速的客户端,我很快就会为HTTP/1.1进行编辑,或者如果您有关于如何提高合规性的建议请分享!

编辑:我的代码更新,使用LWP作为Sinan Unur建议:

#!/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
}
Run Code Online (Sandbox Code Playgroud)

Sin*_*nür 9

Perl有LWP.我建议你用它.

  • LWP略小于轻量级.HTTP :: Lite(将由下一版本的CPAN模块使用)可能更适合. (5认同)