perl 定义post接口

[root@wx03 mojo]# cat a1.pl 
use Digest::MD5;
my $md5 = Digest::MD5->new;
$md5->add(1234567);
print $md5->hexdigest."\n";
[root@wx03 mojo]# perl a1.pl 
fcea920f7412b5da7be0cf42b8c93759


[root@wx03 mojo]# cat a1.pl 
use Digest::MD5;
my $md5 = Digest::MD5->new;
$md5->add(admin);
print $md5->hexdigest."\n";
[root@wx03 mojo]# perl a1.pl 
21232f297a57a5a743894a0e4a801fc3


[root@wx03 mojo]# cat a1.pl 
use Digest::MD5;
my $md5 = Digest::MD5->new;
$md5->add(admin);
my $pass= $md5->hexdigest;
print "\$pass is $pass\n";
[root@wx03 mojo]# perl a1.pl 
$pass is 21232f297a57a5a743894a0e4a801fc3




mysql> select md5('admin') from user;
+----------------------------------+
| md5('admin')                     |
+----------------------------------+
| 21232f297a57a5a743894a0e4a801fc3 |
| 21232f297a57a5a743894a0e4a801fc3 |



mysql> select md5('1234567') from user;
+----------------------------------+
| md5('1234567')                   |
+----------------------------------+
| fcea920f7412b5da7be0cf42b8c93759 |
| fcea920f7412b5da7be0cf42b8c93759 |


/*************************************
[root@wx03 mojo]# cat login.pl 
use Mojolicious::Lite;
use JSON qw/encode_json decode_json/;  
use Encode;
no strict;
no warnings;
use JSON; 
use POSIX;
use JSON::RPC::Client;
use Data::Dumper;
use Digest::MD5;
my $SDATE = strftime("%Y-%m-%d",localtime());
post '/api/login' => sub {
   my $c = shift;
   my $username = $c->param('username');
   my  $paswd = $c->param('passwd');
   my $md5 = Digest::MD5->new;
      $md5->add($passwd);
      $passwd= $md5->hexdigesta;
      print "\$passwd is $passwd\n";
      use DBI;
      my %hash=();
      my $dbUser='DEVOPS';
      my $user="root";
      my $pass='R00t,uHagt.0511';
       my $dbh  = DBI->connect("dbi:mysql:database=$dbUser;host=127.0.0.1;port=3306",$user,$pass) or die "can't connect to database ". DBI-errstr;
      my $hostSql = qq{select count(*)  from user where username='$username' and password='$passwd'};
      my $selStmt = $dbh->prepare($hostSql);
      print "\$hostSql is $hostSql\n";
      $selStmt->execute();
      my $count = $selStmt->fetchrow_array();
      print "\$count is $count\n"; 
      if ( $count ==1 )
         { $hash{login}='success';$c->render(json =>  \%hash);}
         else
         { $hash{login}='failed';$c->render(json =>  \%hash);}
};
  app->start;
         
        
   
[root@wx03 mojo]# 
[root@wx03 mojo]# morbo login.pl 
Server available at http://127.0.0.1:3000



模拟post 请求:

Pattern 	Methods 	Name

/api/login      POST            apilogin





/**********get 登录:

[root@wx03 mojo]# cat login.pl 
use Mojolicious::Lite;
use JSON qw/encode_json decode_json/;  
use Encode;
no strict;
no warnings;
use JSON; 
use POSIX;
use JSON::RPC::Client;
use Data::Dumper;
use Digest::MD5;
my $SDATE = strftime("%Y-%m-%d",localtime());
get '/api/login' => sub {
   my $c = shift;
   my $username = $c->param('username');
   my $passwd = $c->param('passwd');
   my $md5 = Digest::MD5->new;
      $md5->add($passwd);
      $passwd= $md5->hexdigest;
      print "\$passwd is $passwd\n";
      use DBI;
      my %hash=();
      my $dbUser='DEVOPS';
      my $user="root";
      my $pass='R00t,uHagt.0511';
       my $dbh  = DBI->connect("dbi:mysql:database=$dbUser;host=127.0.0.1;port=3306",$user,$pass) or die "can't connect to database ". DBI-errstr;
      my $hostSql = qq{select count(*)  from user where username='$username' and password='$passwd'};
      my $selStmt = $dbh->prepare($hostSql);
      print "\$hostSql is $hostSql\n";
      $selStmt->execute();
      my $count = $selStmt->fetchrow_array();
      print "\$count is $count\n"; 
      if ( $count ==1 )
         { $hash{login}='success';$c->render(json =>  \%hash);}
         else
         { $hash{login}='failed';$c->render(json =>  \%hash);}
};
  app->start;
         


http://120.55.118.6:3000/api/login?username=admin&passwd=admin
{"login":"success"}

http://120.55.118.6:3000/api/login?username=admin&passwd=admin33
{"login":"failed"}


/*******post 登录

[tomcat@wx03 ~]$ perl a3.pl 
---------------
200 OK
[tomcat@wx03 ~]$ vim a3.pl 
[tomcat@wx03 ~]$ perl a3.pl 
---------------
200 OK
HTTP/1.1 200 OK
Date: Fri, 21 Oct 2016 04:40:38 GMT
Server: Mojolicious (Perl)
Content-Length: 19
Content-Type: application/json;charset=UTF-8
Client-Date: Fri, 21 Oct 2016 04:40:38 GMT
Client-Peer: 120.55.118.6:3000
Client-Response-Num: 1

{"login":"success"}
[tomcat@wx03 ~]$ cat a3.pl 
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Headers;
use HTTP::Response;
use Encode;
use File::Temp qw/tempfile/;
use HTTP::Date qw(time2iso str2time time2iso time2isoz);
my $CurrTime = time2iso(time());
my $dis_mainpublish='中均资本';
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $now          = time();
$ua->agent('Mozilla/5.0');
my $cookie_jar = HTTP::Cookies->new(

    file           => 'lwp_cookies.txt',
    autosave       => 1,
    ignore_discard => 1
);
$ua->cookie_jar($cookie_jar);
my $str=(rand(1));
my $url='http://120.55.118.6:3000/api/login';
 my $res = $ua->post($url,{
	                       'username'=>'admin',
                               'passwd'=>'admin'
                                                }
			);
	 print "---------------\n";
	print $res->status_line."\n";
        print $res->as_string();
[tomcat@wx03 ~]$ perl a3.pl 
---------------
200 OK
HTTP/1.1 200 OK
Date: Fri, 21 Oct 2016 04:40:43 GMT
Server: Mojolicious (Perl)
Content-Length: 19
Content-Type: application/json;charset=UTF-8
Client-Date: Fri, 21 Oct 2016 04:40:43 GMT
Client-Peer: 120.55.118.6:3000
Client-Response-Num: 1

{"login":"success"}

[tomcat@wx03 ~]$ perl a3.pl 
---------------
200 OK
HTTP/1.1 200 OK
Date: Fri, 21 Oct 2016 04:40:43 GMT
Server: Mojolicious (Perl)
Content-Length: 19
Content-Type: application/json;charset=UTF-8
Client-Date: Fri, 21 Oct 2016 04:40:43 GMT
Client-Peer: 120.55.118.6:3000
Client-Response-Num: 1

{"login":"success"}
[tomcat@wx03 ~]$ vim a3.pl 
[tomcat@wx03 ~]$ perl a3.pl 
---------------
200 OK
HTTP/1.1 200 OK
Date: Fri, 21 Oct 2016 04:41:19 GMT
Server: Mojolicious (Perl)
Content-Length: 18
Content-Type: application/json;charset=UTF-8
Client-Date: Fri, 21 Oct 2016 04:41:19 GMT
Client-Peer: 120.55.118.6:3000
Client-Response-Num: 1

{"login":"failed"}



转载于:https://www.cnblogs.com/zhaoyangjian724/p/6199072.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Perl调用接口方法,需要先确保已安装正确的Perl模块和相应的API文档。然后,可以按照以下步骤进行: 1. 导入所需的Perl模块。 例如,如果要使用LWP::UserAgent模块来调用API,则需要在代码中添加以下行: ``` use LWP::UserAgent; ``` 2. 创建一个LWP::UserAgent对象。 这个对象将用于发送HTTP请求和接收响应。例如: ``` my $ua = LWP::UserAgent->new; ``` 3. 创建一个HTTP请求对象。 根据API的要求,可以创建不同类型的HTTP请求对象,例如GET、POST、PUT、DELETE等。例如: ``` my $request = HTTP::Request->new(GET => 'https://api.example.com/path/to/api'); ``` 4. 添加必要的HTTP头部。 API可能需要特定的HTTP头部,例如认证凭据、内容类型等。可以使用$request对象的header()方法添加这些头部。例如: ``` $request->header('Authorization' => 'Bearer <your_access_token>'); $request->header('Content-Type' => 'application/json'); ``` 5. 发送HTTP请求。 可以使用$ua对象的request()方法发送HTTP请求并接收响应。例如: ``` my $response = $ua->request($request); ``` 6. 处理响应。 根据API的要求,可以使用$response对象的不同方法来处理响应,例如: - $response->is_success():检查响应是否成功。 - $response->status_line():获取响应的状态行。 - $response->content():获取响应的内容。 以上是使用Perl调用接口方法的基本步骤。根据不同的API和需求,可能需要进行更多的自定义和错误处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值