use LWP::UserAgent;
use Data::UUID;
use Data::GUID;
use HTTP::Date qw(time2iso str2time time2iso time2isoz);
use HTTP::Cookies;
use POSIX;
my $uuid = Data::GUID->new->as_string;
print "\$uuid is $uuid\n";
use Encode;
my $SDATE = strftime("%Y-%m-%dT%H:%M:%SZ",localtime());
use URI::Escape;
$SDATE=uri_escape("$SDATE");
print "\$SDATE is $SDATE\nX";
$SDATEX = $SDATE;
$SDATEX =~ s#%#%25#g;
print "\$SDATEX is $SDATEX\n";
use URI::Escape qw(uri_unescape);
use MIME::Base64;
use Digest::HMAC_SHA1;
$xx="GET&%2F&AccessKeyId%3DZ7MNVh%26Action%3DDescribeRegions%26Format%3DJSON%26RegionId%3Dregion1%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3D$uuid%26SignatureVersion%3D1.0%26TimeStamp%3D$SDATEX%26Version%3D2014-05-26";
$xx = encode_utf8($xx);
print "\$xx is $xx\n";
$str=Digest::HMAC_SHA1::hmac_sha1("$xx","fQIJLxzkj&");
$Signature = encode_base64($str,"");
print "$Signature\n";
$Signature = encode_utf8($Signature);
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
$ua->agent("Mozilla/8.0");
my $cookie_jar = HTTP::Cookies->new(
file => 'lwp_cookies.txt',
autosave => 1,
ignore_discard => 1
);
$ua->cookie_jar($cookie_jar);
$head='http://ecs.aliyuncs.com/?';
#+ 替换为%20 =替换为%3d
$Signature = uri_escape("$Signature");
$api="SignatureVersion=1.0&Format=JSON&TimeStamp=$SDATE&RegionId=region1&AccessKeyId=Z7bpNVh&SignatureMethod=HMAC-SHA1&Version=2014-05-26&Signature=$Signature&Action=DescribeRegions&SignatureNonce=$uuid";
$url=$head.$api;
print "\$url is $url\n";
my $response = $ua->get($url);
if ($response->is_success) {
$yy=$response->decoded_content;
my $var=encode("gbk",decode("utf8",$yy));
print $var; # or whatever
}
else {
print $response->decoded_content; # or whatever
die $response->status_line;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步