zoukankan      html  css  js  c++  java
  • perl mojo 短信接口自动识别编码

     [root@yyjk pfwx-master]# cat mojo.pl
    use lib "./lib";
    use mojo::Client;
    use Data::Dumper;
    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 URI::Escape;
    use DBI; 
    my $dbName = 'serv';  
    my $dbUser = 'SMSsendx';  
    my $dbUserPass = 'SMSsendx';
    #my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to database " ;
    my $client = mojo::Client->new();
      print Dumper($client);
      get '/api/SMSsendx' => sub {
       my $c = shift;
       #my $sourceip=$c->param('sourceip');
       my $message = $c->param('message');
          print $message."
    ";
          print "Length1==";
          print length($message)."
    "; 
          $sms=$message;
          ##utf-8 flag
          my $flag=Encode::is_utf8($message);
          print "$flag===$flag
    ";
          if ($flag)
              { 
             Encode::_utf8_off($message);
             print "Length2==";
             print length($message)."
    ";
             $sms=encode_utf8($sms);
             $sms=encode("gbk",decode("utf8",$sms)) }
          else
              {$message=encode("utf8",decode("gbk",$message)) };
               
          #$message=encode_utf8($message);g===$flag
    ";
          my $phone = $c->param('phone');
          my @phone= split(/|/,$phone);
          $client->SMSsendx("$sms",@phone);
          #mojo::Client::LoadDb::insertdb(1,$sourceip,$message,$phone);
          #$client->insertdb($sourceip,$message,$phone);
         $c->render(json =>{retcode,0000});
           };
    
          get '/api/SMSinfo' => sub {
          my $c=shift;
          my $sourceip=$c->param('sourceip');
          my @arr=$client->SMSinfo($sourceip);
            $c->render(json =>@arr);
           };
      app->start;
    
    浏览器发送:
    http://10.5.100.232:3000/api/SMSsendx?sourceip=$IP&message=%E4%B8%AD%E5%9B%BD&phone=18072722237
    
    
    
    [root@yyjk pfwx-master]# morbo mojo.pl
    Server available at http://127.0.0.1:3000
    $VAR1 = bless( {
                     'client_version' => '1.0'
                   }, 'mojo::Client' );
    [Fri Dec 22 08:41:14 2017] [debug] GET "/api/SMSsendx"
    [Fri Dec 22 08:41:14 2017] [debug] Routing to a callback
    中国
    Length1==2
    $flag===1
    Length2==6
    -----------------
    -----------------
    0Xd    015802        N    ?1    18072722237    
    -----------------
    sent data of length 32
    received response: 0000
    [Fri Dec 22 08:41:14 2017] [debug] 200 OK (0.01515s, 66.007/s
    
    这个时候发送的是utf8编码
    
    
    
    shell utf8终端测试;
    [root@yyjk ~]# echo $LANG
    zh_CN.UTF-8
    
    [root@yyjk ~]# curl 'http://10.5.100.232:3000/api/SMSsendx?sourceip=$IP&message=韩国&phone=18072722237'
    {"retcode":0}[root@yyjk ~]# 
    
    
    [Fri Dec 22 08:43:49 2017] [debug] GET "/api/SMSsendx"
    [Fri Dec 22 08:43:49 2017] [debug] Routing to a callback
    韩国
    Length1==2
    $flag===1
    Length2==6
    -----------------
    -----------------
    0Xd    015802        N    o?1    18072722237    
    -----------------
    sent data of length 32
    received response: 0000
    [Fri Dec 22 08:43:49 2017] [debug] 200 OK (0.006153s, 162.522/s)
    
    
    
    shell gbk 终端测试:
    
    [root@yyjk ~]# echo $LANG
    zh_CN
    [root@yyjk ~]# curl 'http://10.5.100.232:3000/api/SMSsendx?sourceip=$IP&message=泰国&phone=18072722237'
    {"retcode":0}[root@yyjk ~]# 
    
    [Fri Dec 22 08:45:05 2017] [debug] GET "/api/SMSsendx"
    [Fri Dec 22 08:45:05 2017] [debug] Routing to a callback
    ?1
    Length1==4
    $flag===
    -----------------
    -----------------
    0Xd    015802        N    ?1    18072722237    
    -----------------
    sent data of length 32
    received response: 0000
    [Fri Dec 22 08:45:05 2017] [debug] 200 OK (0.011068s, 90.351/s)
    

  • 相关阅读:
    man date
    Python---Tkinter---贪吃蛇
    Python---TKinter项目实战---屏保
    虚拟化之kvm --(vnc控制台)
    cisco和华为的设备如何设置命令不分页显示
    liunx之Centos6.8杀毒软件的安装
    Liunx系统命令sed的使用
    自动运维之网络设备割接配置按预定步骤操作
    mutt+msmtp实现在shell环境中发送电子邮件
    windowns下excel2013快速生成月报表
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349387.html
Copyright © 2011-2022 走看看