在perl脚本中运行Curl命令
在shell脚本中,当我想运行curl命令进行上传时,我只需执行以下操作:在perl脚本中运行Curl命令,perl,curl,Perl,Curl,在shell脚本中,当我想运行curl命令进行上传时,我只需执行以下操作: curl "http://website/event/collection" -H "Authorization:database IDhere-362ifd24-42jn422f-4214asf-ff424158ff" -d'{"time":"'"$epoch"'","event":{"Pr
curl "http://website/event/collection" -H "Authorization:database IDhere-362ifd24-42jn422f-4214asf-ff424158ff" -d'{"time":"'"$epoch"'","event":{"Project_code": "'"$pname"'"}}'
但是我想把我所有的代码从shell转换成perl。那么,您知道如何在perl脚本中运行这个$curl命令吗
$epoch = time();
my $pname;
printf "Enter project name: "
$pname = <STDIN>;
chomp $pname
curl "http://website/event/collection" -H "Authorization:database IDhere-362ifd24-42jn422f-4214asf-ff424158ff" -d'{"time":"'"$epoch"'","event":{"Project_code": "'"$pname"'"}}'
$epoch=time();
我的$pname;
printf“输入项目名称:”
$pname=;
chomp$pname
卷曲“http://website/event/collection“-H”授权:数据库IDhere-362ifd24-42jn422f-4214asf-ff424158ff“-d'{“时间”:“$epoch”,“事件”:{“项目代码”:““$pname””}”
我看到有人说(使用)可以生成代码,但我不确定这是否正确
#!perl
use strict;
use warnings;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new( 'send_te' => '0' );
my $r = HTTP::Request->new(
'POST' => 'http://website/event/collection',
[
'Accept' => '*/*',
'Authorization' =>
'database IDhere-362ifd24-42jn422f-4214asf-ff424158ff',
'Host' => 'website:80',
'User-Agent' => 'curl/7.55.1',
'Content-Length' => '52',
'Content-Type' => 'application/x-www-form-urlencoded'
],
"{\x22time\x22:\x22\x24epoch\x22,\x22event\x22:{\x22Project_code\x22: \x22\x24pname\x22}}"
);
my $res = $ua->request( $r, );
__END__
Created from curl command line
curl "http://website/event/collection" -H "Authorization:database IDhere-362ifd24-42jn422f-4214asf-ff424158ff" -d'{"time":"'"$epoch"'","event":{"Project_code": "'"$pname"'"}}'
更新:
取而代之的是,用这个,它对我很有用:
my $curl='curl whatevercodeshere'
我看到有人说(使用)可以生成代码,但我不确定这是不是正确的方法
#!perl
use strict;
use warnings;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new( 'send_te' => '0' );
my $r = HTTP::Request->new(
'POST' => 'http://website/event/collection',
[
'Accept' => '*/*',
'Authorization' =>
'database IDhere-362ifd24-42jn422f-4214asf-ff424158ff',
'Host' => 'website:80',
'User-Agent' => 'curl/7.55.1',
'Content-Length' => '52',
'Content-Type' => 'application/x-www-form-urlencoded'
],
"{\x22time\x22:\x22\x24epoch\x22,\x22event\x22:{\x22Project_code\x22: \x22\x24pname\x22}}"
);
my $res = $ua->request( $r, );
__END__
Created from curl command line
curl "http://website/event/collection" -H "Authorization:database IDhere-362ifd24-42jn422f-4214asf-ff424158ff" -d'{"time":"'"$epoch"'","event":{"Project_code": "'"$pname"'"}}'
更新:
取而代之的是,用这个,它对我很有用:
my $curl='curl whatevercodeshere'
我不这么认为,因为我一直想运行某个命令。也许是exec(“”?有趣的参考资料!可以通过阅读手册页并与docs@HelpMeAndroidStudio
$ua->request($r)
运行命令。$ua
是使用LWP::UserAgent
构建的用户代理(浏览器),而HTTP::request
详细信息构建了随后提交的请求$r
。虽然我不能确认细节,但这是可以检查的…@zdim我不能像运行普通linux命令一样运行curl注释吗?@HelpMeAndroidStudio在Perl程序中不能直接运行linux命令,但有一些工具可以将命令传递给系统或shell。最基本的是和“backticks”(也称为backticks),但最好使用库,比如IPC::System::Simple
或Capture::Tiny
或IPC::Run
我不这么认为,因为我一直想运行某个命令。也许是exec(“”?有趣的参考资料!可以通过阅读手册页并与docs@HelpMeAndroidStudio$ua->request($r)
运行命令。$ua
是使用LWP::UserAgent
构建的用户代理(浏览器),而HTTP::request
详细信息构建了随后提交的请求$r
。虽然我不能确认细节,但这是可以检查的…@zdim我不能像运行普通linux命令一样运行curl注释吗?@HelpMeAndroidStudio在Perl程序中不能直接运行linux命令,但有一些工具可以将命令传递给系统或shell。最基本的是和“backticks”(也称为),但最好使用库,如IPC::System::Simple
或Capture::Tiny
或IPC::Run
参考答案的updatedRefer参考答案的更新