如何使用Lwp :: Useragent发送http补丁请求?

时间:2014-05-28 11:56:12

标签: perl salesforce

我正在使用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还有一个选项。

2 个答案:

答案 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);
相关问题