[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)