poorX

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  117 随笔 :: 0 文章 :: 11 评论 :: 16万 阅读

类似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   poorX  阅读(345)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示