与从命令行调用相同的命令相比,从脚本进行的CURL调用返回的值不同

时间:2019-08-08 17:55:05

标签: perl curl dspace

我正在尝试使用SWORDv2协议将带有curl的zip文件发送到基于DSpace 6.3的存储库。

我从Perl脚本中调用curl,得到状态200响应,该响应未在存储库中发送文件,如果从命令行发送,则得到状态201响应,并且文件已发送成功。

Perl代码是这个

my $call = 'curl -i --data-binary "@'.$filename.'" -H "Content-Disposition:attachment; filename='.$filename.'" -H "Content-Type:'.$type.'" -H "Packaging:http://purl.org/net/sword/package/METSDSpaceSIP" -u '.$user.':'.$pwd.' -X POST '.$url.$handle;
system($call);

我需要接收状态201,就像从命令行中调用状态一样。

编辑:

变量值(由于存在敏感信息而被混淆):

my $filename = "foo.zip";
my $type = "application/zip";
my $user = 'foo@mydomain.com';
my $pwd = 'foobarbaz';
my $url = 'http://fobar.mydomain.com/baz/handle/i/';
my $handle = '1234';
$url = $url.$handle;
# So url is http://fobar.mydomain.com/baz/handle/i/1234

0 个答案:

没有答案