将其转换为Perl curl-v-H“;AUTH_USER:$USER"&引用$url";1>&引用$tmpfile“;2>&引用$hdrfile“;
我试图将这个shell命令转换成perl,我正在使用WWW::Curl::Easy 我想将详细内容写入另一个文件,并将URL内容放入另一个文件中。到目前为止,我已经能够卷曲URL并向其添加标题 现在,我只想将asshell命令提到1>的输出写入一个文件并 2> 进入antohter文件,因为它在shell中将其转换为Perl curl-v-H“;AUTH_USER:$USER"&引用$url";1>&引用$tmpfile“;2>&引用$hdrfile“;,perl,shell,curl,libcurl,filehandle,Perl,Shell,Curl,Libcurl,Filehandle,我试图将这个shell命令转换成perl,我正在使用WWW::Curl::Easy 我想将详细内容写入另一个文件,并将URL内容放入另一个文件中。到目前为止,我已经能够卷曲URL并向其添加标题 现在,我只想将asshell命令提到1>的输出写入一个文件并 2> 进入antohter文件,因为它在shell中 my $curl = WWW::Curl::Easy->new(); $curl->setopt(CURLOPT_HEADER,1); $cur
my $curl = WWW::Curl::Easy->new();
$curl->setopt(CURLOPT_HEADER,1);
$curl->pushopt(WWW::Curl::Easy::CURLOPT_HTTPHEADER,['AUTH_USER:John']);
$curl->setopt(WWW::Curl::Easy::CURLOPT_URL,"www.abc.com");
$curl->setopt(CURLOPT_VERBOSE,1);
我如何将www.abc.com的内容
<html>
<body>
<marquee>abc is up </marquee>
</body>
</html>
美国广播公司上台了
合并成一个文件
并将其保存到另一个文件中
> GET / HTTP/1.1
Host: abc-01
Accept: */*
AUTH_USER:hojn
< HTTP/1.1 200 OK
......
>GET/HTTP/1.1
主持人:abc-01
接受:*/*
授权用户:hojn
粗略阅读并发现您可能需要:
# A filehandle, reference to a scalar or reference to a typeglob can be used here.
my $response_body;
$curl->setopt(CURLOPT_WRITEDATA,\$response_body);
my $response_header;
$curl->setopt(CURLOPT_WRITEHEADER,\$response_header);
使用libcurl时,将其放在手边是很有用的 浏览这些选项,我们可以找到和
注意:我使用Net::Curl而不是WWW::Curl,因为我知道并信任它。以上内容也适用于WWW::Curl,只要它为
CURLOPT\u WRITEFUNCTION
和CURLOPT\u HEADERFUNCTION
提供了一个Perl感知的默认值。如果没有,您也需要为这些选项提供值。那么我们在哪里定义文件句柄呢,假设我们必须写入/usr/bin/header.txt/usr/bin/content.txt中的一个文件,您在哪里定义它?您定义它并写入它,就像您对任何文件一样。响应体也包含响应头,我只想将html代码写入一个文件,并在另一个文件中详细说明,但是她的响应体包含了完整的响应,我只想把URL的html代码写进data.out文件中的一个文件头也因为某种原因被写进了data.out中,我只想在data.out中编写html代码。任何实现header.out的方法都是完美的,但是data.out也包含header.out中的数据
use strict;
use warnings;
use Net::Curl::Easy qw( /^CURLOPT_/ );
my $url = 'http://stackoverflow.com/';
my $easy = Net::Curl::Easy->new();
open(my $fh_header, '>:raw', 'header.out') or die $!;
open(my $fh_data, '>:raw', 'data.out' ) or die $!;
$easy->setopt(CURLOPT_URL, $url);
$easy->setopt(CURLOPT_WRITEHEADER, $fh_header);
$easy->setopt(CURLOPT_WRITEDATA, $fh_data);
$easy->perform();