[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"}

perl 定义post接口的更多相关文章

  1. java中接口的定义和接口的实现

    1.接口的定义 使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: [修饰符] interfa ...

  2. 定义 ICache 接口,以及实现默认的 ASP.NET 缓存机制

    本文定义 ICache 接口,以及实现默认的 ASP.NET 缓存机制(即通过 System.Web.Caching.Cache)来缓存,将来也可以通过扩展,替换默认实现. 下面直接贴代码了: ICa ...

  3. [二] java8 函数式接口详解 函数接口详解 lambda表达式 匿名函数 方法引用使用含义 函数式接口实例 如何定义函数式接口

    函数式接口详细定义 package java.lang; import java.lang.annotation.*; /** * An informative annotation type use ...

  4. C++:如何正确的定义一个接口类

    C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类.接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成. 而对于C++,其接口类一 ...

  5. 二十三、DBMS_METADATA(提供提取数据库对象的完整定义的接口)

    1.概述 作用:提供提取数据库对象的完整定义的接口.这些定义可以用XML或SQL DDL格式描述.提供两种类型接口:可编程控制的接口:用于Ad Hoc查询的简单接口. 2.包的组成 dbms_meta ...

  6. 如何定义一个接口(接口Interface只在COM组件中定义了,MFC和C++都没有接口的概念)

    接口是COM中的关键词,在c++中并没有这个概念.接口是一种极度的抽象.接口用在COM组件中有自己的GUID值,因此定义接口时一定要指定它的GUID值. 实际上接口就是struct,即#define ...

  7. java8函数式接口详解、函数接口详解、lambda表达式匿名函数、方法引用使用含义、函数式接口实例、如何定义函数式接口

    函数式接口详细定义 函数式接口只有一个抽象方法 由于default方法有一个实现,所以他们不是抽象的. 如果一个接口定义了一个抽象方法,而他恰好覆盖了Object的public方法,仍旧不算做接口的抽 ...

  8. java抽象类,接口(接口定义,实现接口,instanceof运算符,对象转换)

    抽象类 在面向对象的概念中,所有的对象都是通过类来表述的,但并不是所有的类都能够完整的描绘对象,如果一个类中没有包含足够的信息来描绘一类具体的对象,这样的类就是抽象类.抽象类往往用来表征对问题领域进行 ...

  9. Java 基础 面向对象: 接口(interface )概念 以及接口之练习3 -定义一个接口用来实现两个对象的比较并 判断instanceof是否为同类

    接口(interface )概念概念笔记 及测试代码: /** 面向对象: 接口(interface ) 是与类并行的一个概念: * 1.接口可以看成一个特殊的抽象类,它是常量与抽象方法的一个集合 * ...

随机推荐

  1. 廖雪锋笔记1---python变量类型

    整型:a/b a//b a%b 浮点型:.2 字符串: "" '' r"" r'' '''...''' r'''...'''' 变量值共享:写时复制 NULL型 ...

  2. C开发之----#if、#ifdef、#if defined之间的区别

    #if的使用说明 #if的后面接的是表达式 #if (MAX==10)||(MAX==20) code... #endif 它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会 ...

  3. Android性能优化典范 - 第5季

    这是Android性能优化典范第5季的课程学习笔记,拖拖拉拉很久,记录分享给大家,请多多包涵担待指正!文章共10个段落,涉及的内容有:多线程并发的性能问题,介绍了AsyncTask,HandlerTh ...

  4. html 新元素

    html5新元素 html5语义元素 <header> 定义了文档或者文档的一部分区域的页眉 <nav> 定义了导航链接的部分 <section> 定义了文档的某个 ...

  5. KineticJS教程(1-2)

    1.基本结构 KineticJS首先是要绑定到HTML页面上的一个DOM容器元素上,比如最常用的<div>标签.KineticJS在此容器中创建一个称之为舞台(stage)的结构,这个舞台 ...

  6. 我的网站终于连续一星期,ip数1000以上了

    相信每个程序员都有一个站长梦,我也是如此.说来惭愧,从2015年4月份开始,我投入了50块的域名费用,50块的空间费用,现在才回本. 由于终于从百度联盟的手里赚了一百块,按耐不住的菜鸟之冲动,于是决定 ...

  7. 让ie6/7/8兼容css3的圆角阴影等特殊效果的方法 PIE1.0.0及placeholder在这些IE下生效的方法

    PIE地址:http://css3pie.com/ 使用方法1: #login,#AnnouncementBox {  border:3px solid #fff;  -webkit-border-r ...

  8. ZOJ2112 Dynamic Rankings 动态区间第K最值 平方分割

    有了上一题的经验(POJ的静态区间第K最值)再解决这道题就轻松多了 空间5256KB,时间3330ms,如果把动态开点的平衡树换成数组模拟的话应该会更快 之所以选择了平方分割而不是树套树,不仅是所谓趁 ...

  9. 读书笔记之 - javascript 设计模式 - 组合模式

    组合模式是一种专为创建Web上的动态用户界面而量身定制的模式,使用这种模式,可以用一条命令在对各对象上激发复杂的或递归的行为. 在组合对象的层次体系中有俩种类型对象:叶对象和组合对象.这是一个递归定义 ...

  10. 『重构--改善既有代码的设计』读书笔记----Substitute Algorithm

    重构可以把复杂的东西分解成一个个简单的小块.但有时候,你必须壮士断腕删掉整个算法,用简单的算法来取代,如果你发现做一件事情可以有更清晰的方式,那你完全有理由用更清晰的方式来解决问题.如果你开始使用程序 ...