我正在使用lwp :: useragent对抗salesforce rest api。
我必须使用http补丁请求。
对于获取和发布请求,我们使用以下代码:
需要LWP :: UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $get_response = $ua->get('http://search.cpan.org/',x=>'y');
my $post_response = $ua->post('http://search.cpan.org/',x=>'y');
不幸的是,这不起作用
my $patch_response = $ua->patch('http://search.cpan.org/',x=>'y');
我没有找到如何使用这个模块。
这个问题有一个解决方法,如How do I send a request using the PATCH method for a Salesforce update?
所述这有效,但这不是一个好的解决方案。
我看到使用python可以明确地发出补丁请求How do I make a PATCH request in Python?,所以我假设perl还有一个选项。
答案 0 :(得分:4)
my $request = HTTP::Request->new(PATCH => $url);
... Add any necessary headers and body ...
my $response = $ua->request($request);
答案 1 :(得分:1)
这最近变得更容易了。 PATCH
现已POST
中实施了HTTP::Message
。
首先,更新HTTP::Message
模块(至6.13或更高版本)。
然后
my %fields = ( title => 'something', body => something else');
my $ua = LWP::UserAgent->new();
my $request = HTTP::Request::Common::PATCH( $url, [ %fields ] );
my $response = $ua->request($request);