Skip to content

Latest commit

 

History

History
592 lines (387 loc) · 16.9 KB

File metadata and controls

592 lines (387 loc) · 16.9 KB

NAME

Net::HTTP - 篏���㋘����� HTTP �・膓� (��壔�í�ゃ�≪�潟��)

SYNOPSIS

use Net::HTTP;
my $s = Net::HTTP->new(Host => "www.perl.com") || die $@;
$s->write_request(GET => "/", 'User-Agent' => "Mozilla/5.0");
my($code, $mess, %h) = $s->read_response_headers;

while (1) {
   my $buf;
   my $n = $s->read_entity_body($buf, 1024);
   die "read failed: $!" unless defined $n;
   last unless $n;
   print $buf;
}

DESCRIPTION

Net::HTTP ��壔�í�鴻�壚����㋘����� HTTP ��壔�í�ゃ�≪�潟����с����� 筝���ゃ�� Net::HTTP ��壔�í�鴻�勐��篏���壚����ゃ�� HTTP ��泣�若����吾�勖・膓����茵◐憗����障����� HTTP �����㏍����潟�˨�� RFC 2616 ��̬��菴違�������⓾����障����� Net::HTTP ��壔�í�鴻�� HTTP/1.0 ��� HTTP/1.1 ���絲上�������⓾����障�����

Net::HTTP ��� IO::Socket::INET ��勉�泣����壔�í�鴻�с����� 緇�菴違�������<�純�������������純�宴�������������勛�贋・��勤˛��炊�吾�����羞激����������������с����障����� ��������壔��篏���������������������⓾�������勉�������������c�⓾����ŝ�������������������������с� ��������障��������

(IO::Socket::INET ��勉����勉�����������)篁ヤ����勉�<�純�����������箴���������障��:

$s = Net::HTTP->new( %options )

Net::HTTP ��潟�潟�鴻����í�壔�帥�<�純�������� IO::Socket::INET ������罕� 篁ヤ����勉�ŝ����激�с�潟����������障��:

Host:            Initial host attribute value
KeepAlive:       Initial keep_alive attribute value
SendTE:          Initial send_te attribute_value
HTTPVersion:     Initial http_version attribute value
PeerHTTPVersion: Initial peer_http_version attribute value
MaxLineLength:   Initial max_line_length attribute value
MaxHeaderLines:  Initial max_header_lines attribute value

��障�����Host ��ŝ����激�с�潟�壔�勉�������í�˨����� IO::Socket::INET �� PeerAddr ��с����� PeerPort ������箴���������ŝ����c����翫����勉�������í�˨����� 80 ��с�����

IO::Socket::INET ��勉�潟�潟�鴻����í�壔�帥�<�純�������ф��箴���������⓾����� Listen ��ŝ����激�с�潟�壚戎�����障��������

���絎���������� HTTP ��泣�若������・膓���с����ŝ����翫�������潟�潟�鴻����í�壔�帥�� undef ��� 菴�������$@ ��̥����宴����ャ����障����� �・膓����������������緇���壔��Net:HTTP ��ŝ����吾�с�壔�����菴���������障�����

$s->host

���篆<����� Host �����������勉�������í�˨����ゃ�����緇�/荐㊤�������障����� HTTP/1.1 ��с�� $host ��夌Ã���絖���� (������������ undef)��虁┃絎���с����障��������

$s->keep_alive

keep-alive ��勐�ゃ�����緇�/荐㊤����с����障����� �����勐�ゃ�� TRUE ��勐�翫�������泣�若����壩・膓���������������障�丞境�����������������������勉� 茲���違�勉�ŝ�壔����鴻����������������������с��������������腓冴��������������篁������⓾�ŝ�壔����鴻����� �����������障�����

絎������勉����������������� http_version ��� peer_http_version 絮���с� 箴�絖������障�����

$s->send_te

��泣�若�����篏帥�������������吾�鴻��荵∫�������潟�潟�若����c�潟�違��腓冴�� "TE" ���������篁������ ��ŝ�壔����鴻����������������������í��������腓冴����ゃ�����緇�/荐㊤�������障����� �����勉�壔�í�ゃ�≪�潟����˨����c�☗�����篁���������������◒����ャ�������������潟�潟�若����c�潟�違� 筝�荀с�壔��罨<�勉�≪�吾�ャ�若�˨����ñ���櫝�純����˩��絖������障��: deflate ��� Compress::Raw::Zlib��� gzip ��� IO::Compress::Gunzip���

$s->http_version

��壔�í�ゃ�≪�潟�������������� HTTP ��勉����若�吾�с�括�ɱ垩�����緇�/荐㊤�������障����� �����勐�ゃ�� "1.0" ��� "1.1" ���������荐㊤����с����障����� ��������í�˨����� "1.1" ��с�����

$s->peer_http_version

��御����勉����㏍����潟�˨����若�吾�с�括�ɱ垩�����緇�/荐㊤�������障����� �����勐�ゃ�壩�������� "1.0" ��с��������read_response_headers() ��<�純�������若�喝�冴����� ��������������������ф�贋�違�������障�����

$s->max_line_length

��㋘�鴻����潟�壕�������㋘�鴻����潟�鴻��������茵���勰�激����勐�狗��������緇�/荐㊤����с����障����� ��������í�˨����� 8192 ��с����� ��� 0 ��夌�≦�狗����������潟����障�����

$s->max_header_length

��㋘�鴻����潟�鴻�������ゃ�������勉�с��������������茵���勖�違�勐�狗�����荐㊤��/���緇������障����� ��������í�˨����� 128 ��с����� ��� 0 ��夌�≦�狗����������潟����障�����

$s->format_request($method, $uri, %headers, [$content])

��ŝ�壔����鴻����<����祉�若�吾����翫就�����〠��絖������������☀�������障����� ������������ Host �����ŝ����翫�����host 絮���с�勐�ゃ����水�ャ�������障����� Connection ��� Keep-Alive ��勉�������ŝ�������������� keep_alive 絮���с�勛�倶����˨����c�☀申��������������������������障��������

$content ������絎���������� (�����ょÃ��純�с�ŝ��) ��翫�����(��≪�˨�ŝ��������) Content-Length ������������菴遵����������障�����

$s->write_request($method, $uri, %headers, [$content])

��ŝ�壔����鴻����<����祉�若�吾����翫就�����☁��篆<����障����� 綣���違�� format_request() �����������с����� ��������������◐�����菴������障�����

$s->format_chunk( $data )

筝������������������若�帥�勐����勉����������吾�����������絖�������菴������障�����

$s->write_chunk($data)

��ŝ�壔����鴻�������潟����c����c�������c����若�帥�勖�違�����紂������吾��莨若�帥�障����� �����勉�<�純������� Transfer-Encoding ������������ chunked ���荐㊤����������ŝ�壔����鴻����� �����c����翫����˨�勉�推戎�����鴻����с����� ��激�� 0 ��勉����若�帥����吾��莨若����с��篏����莎激�������ŝ�����������羈���������⓾�������������� �����潟����c����c�������c����若�帥�勛�������������ャ����������˨�� write_chunk_eof() ��<�純�������� 篏帥����障�����

��������������◐�����菴������障�����

$s->format_chunk_eof( %trailers )

chunked ��� Transfer-Encoding ���篏帥�c�⓾�������������˨��EOF ��� ��ャ�������������������吾�����������絖�������菴������障�����

$s->write_chunk_eof( %trailers )

紂���勉����若�帥����ŝ����激�с�潟�勖��絨障�˨�ゃ����������������勉�������˨����<�ゃ�̥��腴壔����若�˨�� ��吾��莨若�帥�障����� ���絨障�˩�������������������壠�������˨�� Trailer �����������ч����ャ����������障� 篏帥�������障��������

��������������◐�����菴������障�����

($code, $mess, %headers) = $s->read_response_headers( %opts )

��泣�若����������㋘�鴻����潟�鴻�����������茯㏍�粋昭�����ц�������障����� $code ��� 3 罅���� HTTP ��鴻����若�帥�鴻�潟�若�� (HTTP::Status ������)��� $mess ��壔����勉����㏍�鴻����<����祉�若�吾�с����� ��������������������������㏍��/��ゃ�勛����ц����������障����� ��㏍�若�勐ぇ���絖�絨����絖���壩③荀������������������������㏍�若��茲���医���憗������櫝�醇�с����������勉�с�� �����������勐�ゃ����贋・�����������˩撮��ャ�������������虁晦�����с�壔�������障�������� �����勉�<�純����������鴻�˨�í�潟�潟����㏍�鴻����у�若�喝�冴��������������$code ���������菴���������障�����

��壚�������������⓾�������勉�<�純�������� 'peer_http_version' 絮���с����贋�違����障�����

��ŝ����激�с�潟�壔�㏍��/��ゃ�勛����ф検�����障����� �憜��篋���ゃ�勉�ŝ����激�с�� (laxed ��� junk_out) ���������絲上�������⓾����障�����

laxed ��ŝ����激�с�潟�壔��read_response_headers() ������ HTTP ��勖③������荅宴����鴻��絖⓾����с����ŝ����泣�若�����絲障����⓾�����絲�絎鴻�˨�˨����障����� laxed ��ŝ����激�с�潟�夌����遵�ゃ����í�違�с��TRUE ��ゃ��羝<����������ф����鴻�˨�ŝ����障����� junk_out ��ŝ����激�с�潟�壔��laxed ��������鴻�勖����̹�������c�����������茵���� ��������������勉�˩戎��������障����� ��ゃ�奝�������ŝ����<�㋘�潟�鴻�с����� ��������c�����������茵���壔����勰�������� push ��������障�����

laxed ��ŝ����激�с�潟�壔����㋘�鴻����潟�鴻����������������㏍����壔��菴������ŝ�����HTTP/1.0 篁ュ���� ��泣�若����◒��篆<�����������������絎������ŝ�������違�ŝ����障�������� �����������勉�泣�若����勉�������� peer_http_version ��� "0.9" ��̬┃絎���������� �����勉�<�純�������� (200, "Assumed OK") ���菴������障�����

�����勉�<�純�������壔����泣�若�������ï����� HTTP ���荅宴����ŝ����c����� max_line_length ��� max_header_length ��勐�狗����̹����������翫���� 箴�紊������榊����������障�� (die �����障��)��� laxed ��ŝ����激�с�潟�������鴻�˨����� max_line_length �� max_header_length ��勉����с����壔����≦�鴻�˨�����������箴�紊������榊���������������� ��ŝ����ŝ����������勉�<�純�������壠幻��˨�㋘�鴻����潟�鴻�潟�若�����菴���������障�����

$n = $s->read_entity_body($buf, $size);

�����潟����c����c�������c�勐��絎鴻�勉����c�潟�壔��茯㏍�粋昭��帥�障����� ��堺�㋜����� read() ��������� sysread() �����������ゃ�潟�帥�若����с�若�鴻�с������������������� ��ŝ����祉�����綣���違�壔�障��絲上�������⓾����障�������� �����勉�<�純�������壔��read_response_headers() ��若�喝�冴�����������������緇���˨�勉� ��若�喝�冴����������鴻����с�����

菴������ゃ�壔��茯㏍�粋昭��帥����í�惹����� undef���EOF ��ŝ�� 0���篁���������若�帥�� 菴���������ŝ�������� -1���������篁ュ����� $buf ��˩撮��ャ�������������ゃ����違��腓冴����障����� 菴������ゃ�� -1 ��勐�翫����� $buf ��˨�� "" ���荐㊤����������障�����

�����勰�∽�違�� -1 ���菴����������undef ���菴���������� $! ��� EINTR ��� EAGAIN (Errno ������) ��勐�翫�������勰����壔����勐�若�喝�冴�����膵違��菴������������壔����с����� EINTR ��壔�≪����ŝ�宴�若�激�с�潟����激�違����˨�������������������̬儀������������������������ EAGAIN ��壔�純�宴����������������㏍����㏍�潟�違�˨�������������̬儀�����������������������障�����

�����勉�<�純�������壔����泣�若�������ï����� HTTP ���荅宴����ŝ����翫����壚��紊���� 莎激�������障��(die �����障��)��� ��������壔����若�帥�勐�����茯㏍�粋昭��推賢��˨�勉�粋儀�����������������������障�����

%headers = $s->get_trailers

�����潟����c����c�������c�勛�����������腓冴����������� read_entity_body() ��� 0 ��� 菴�������緇�������絨障�˩�����������������������緇���������������˨����勉�<�純����������若�喝�冴�������� ��������障��������

$s->_rbuf

茯㏍�粋昭��帥����������≦��絎鴻�����緇�/荐㊤�������障����� read_response_headers() ��<�純�������� read_entity_body() ��<�純������� 絎������˨�純�宴�������育�������� sysread �����������˨����若�帥���「��������������������<��篏帥����障����� ������茯㏍�粋昭��帥����������翫�����罧������勉����若�帥�壔����勉����������<��罧������障�����

$s->_rbuf_length

茯㏍�粋昭��帥����������<�勉����ゃ����違��菴������障����� ��������壠幻��˩札筝������������с��:

length($s->_rbuf)

��������������c����号�������������������障��������

SUBCLASSING

(��泣����壔�í�劫��)

read_response_headers() ��� read_entity_body() ��壔�������c�������若�帥��綽�荀��� ��翫����� sysread() ��<�純��������莎桁�������障����� ��泣����壔�í�鴻�壔��茯㏍�粋昭��帥����í�勉�������̬�������������九勝��������������˨����勉�<�純�������� ��ŝ�若����若�í�ゃ�������������������������障��������

��ŝ����吾�с�壔����ʃ昆��壔�違�㏍����с����� ��泣����壔�í�鴻�� http_ ��� io_ ����・��㊧��篏帥�c����������激�ャ�㏍�弱���� ��帥�������鴻����с�����

SEE ALSO

LWP, IO::Socket::INET, Net::HTTP::NB

COPYRIGHT

Copyright 2001-2003 Gisle Aas.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.