所以我很乐意在 Perl 中向 Curl 请求添加表单,如下所示:
#!/usr/bin/perl
use WWW::Curl::Form;
use WWW::Curl::Easy;
sub chunk { my ($data,$pointer)=@_; ${$pointer}.=$data; return length($data) }
$i=WWW::Curl::Easy->new;
$w=$i->setopt(CURLOPT_URL,'https://url/path/');
$i->setopt(CURLOPT_WRITEFUNCTION, \&chunk );
$i->setopt(CURLOPT_HEADERFUNCTION, \&chunk );
$i->setopt(CURLOPT_WRITEHEADER, \$headers );
$i->setopt(CURLOPT_FILE, \$body );
my $form = WWW::Curl::Form->new();
$form->formadd('field','value');
$i->setopt( CURLOPT_HTTPPOST(), $form );
my $retcode=$i->perform();
但现在我想重用该对象来发布一些 JSON。这意味着我需要清除请求中的表单(我假设因为我也清除了标题和正文)。这样做的正确方法是什么?我无法将 CURLOPT_HTTPPOST 设置为 null,因为没有 null 且 0 也不起作用。
最后,我确实创建了一个新实例。在这个过程中,我发现我错误地使用了 cookiejar,所以那里有奖励内容。