?? message.pm
字號:
## $Id: Message.pm,v 1.1 1999/07/21 19:12:28 kraven Exp $package HTTP::Message;=head1 NAMEHTTP::Message - Class encapsulating HTTP messages=head1 SYNOPSIS package HTTP::Request; # or HTTP::Response require HTTP::Message; @ISA=qw(HTTP::Message);=head1 DESCRIPTIONA C<HTTP::Message> object contains some headers and a content (body).The class is abstract, i.e. it only used as a base class forC<HTTP::Request> and C<HTTP::Response> and should never instantiatedas itself.The following methods are available:=over 4=cut#####################################################################require HTTP::Headers;require Carp;use strict;use vars qw($VERSION $AUTOLOAD);$VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/);=item $mess = new HTTP::Message;This is the object constructor. It should only be called internallyby this library. External code should construct C<HTTP::Request> orC<HTTP::Response> objects.=cutsub new{ my($class, $header, $content) = @_; if (defined $header) { Carp::croak("Bad header argument") unless ref $header; $header = $header->clone; } else { $header = HTTP::Headers->new; } $content = '' unless defined $content; bless { '_headers' => $header, '_content' => $content, }, $class;}=item $mess->clone()Returns a copy of the object.=cutsub clone{ my $self = shift; my $clone = HTTP::Message->new($self->{'_headers'}, $self->{'_content'}); $clone;}=item $mess->protocol([$proto])Sets the HTTP protocol used for the message. The protocol() is a string=cutsub protocol { shift->_elem('_protocol', @_); }=item $mess->content([$content])The content() method sets the content if an argument is given. If noargument is given the content is not touched. In either case theprevious content is returned.=item $mess->add_content($data)The add_content() methods appends more data to the end of the previouscontent.=cutsub content { shift->_elem('_content', @_); }sub add_content{ my $self = shift; if (ref($_[0])) { $self->{'_content'} .= ${$_[0]}; # for backwards compatability } else { $self->{'_content'} .= $_[0]; }}=item $mess->content_refThe content_ref() method will return a reference to content string.It can be more efficient to access the content this way if the contentis huge, and it can be used for direct manipulation of the content,for instance: ${$res->content_ref} =~ s/\bfoo\b/bar/g;=cutsub content_ref{ my $self = shift; \$self->{'_content'};}sub as_string{ ""; # To be overridden in subclasses}=item $mess->headers;Return the embedded HTTP::Headers object.=item $mess->headers_as_string([$endl])Call the HTTP::Headers->as_string() method for the headers in themessage.=cutsub headers { shift->{'_headers'}; }sub headers_as_string { shift->{'_headers'}->as_string(@_); }=backAll unknown C<HTTP::Message> methods are delegated to theC<HTTP::Headers> object that is part of every message. This allowsconvenient access to these methods. Refer to L<HTTP::Headers> fordetails of these methods: $mess->header($field => $val); $mess->scan(\&doit); $mess->push_header($field => $val); $mess->remove_header($field); $mess->date; $mess->expires; $mess->if_modified_since; $mess->if_unmodified_since; $mess->last_modified; $mess->content_type; $mess->content_encoding; $mess->content_length; $mess->content_language $mess->title; $mess->user_agent; $mess->server; $mess->from; $mess->referer; $mess->www_authenticate; $mess->authorization; $mess->proxy_authorization; $mess->authorization_basic; $mess->proxy_authorization_basic;=cut# delegate all other method calls the the _headers object.sub AUTOLOAD{ my $self = shift; my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2); return if $method eq "DESTROY"; $self->{'_headers'}->$method(@_);}# Private method to access members in %$selfsub _elem{ my $self = shift; my $elem = shift; my $old = $self->{$elem}; $self->{$elem} = $_[0] if @_; return $old;}1;=head1 COPYRIGHTCopyright 1995-1997 Gisle Aas.This library is free software; you can redistribute it and/ormodify it under the same terms as Perl itself.=cut
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -