poorX

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

类似Python SimpleHTTPServer

#!/usr/bin/perl
# https://metacpan.org/pod/HTTP::Server::Simple
# https://metacpan.org/pod/distribution/CGI/lib/CGI.pod
package WebServer;

use strict;
use warnings FATAL => 'all';
use HTTP::Server::Simple::CGI;
use base qw(HTTP::Server::Simple::CGI);
use JSON;

sub handle_request {
  my $self = shift;
  my $cgi  = shift;
  my $handler = \&resp_info;

  print "HTTP/1.0 200 OK\r\n";
  print $cgi->header(
    -type    => 'application/json',
    -status  => '200',
  );
  $handler->($cgi);
}

sub resp_info {
  my $cgi  = shift;   # CGI.pm object
  return if !ref $cgi;

  # my $who = $cgi->param('name');
  my %rec_hash = (
    'path' => $cgi->path_info(),
    'method' => $cgi->request_method()
  );
  my $json = encode_json \%rec_hash;

  print $cgi->param(
    -name  => 'data',
    -value => $json,
  );
};

# start the server on port 8080
my $pid = WebServer->new(8080)->run();
# my $pid = WebServer->new(8080)->background();
# print "Use 'kill $pid' to stop server.\n";

 


posted on 2019-04-23 11:12  poorX  阅读(338)  评论(0编辑  收藏  举报