不带命名参数的 REST HTTP DELETE

teo*_*jan 2 perl lwp

我想要做:

 curl -X DELETE -d '{"name":"flowx"}' 'http://somewhere/wm/staticflowentrypusher/json'
Run Code Online (Sandbox Code Playgroud)

在 Perl 中:

 my $browser = LWP::UserAgent->new;
 my $url = 'http://somewhere/wm/staticflowentrypusher/json';
 $browser->delete($url, '{"name":"flowx"}');
Run Code Online (Sandbox Code Playgroud)

但我得到:

 Illegal field name '{"name":"flowx"}' at /home/user/perl5/lib/perl5/HTTP/Request/Common.pm line 115
Run Code Online (Sandbox Code Playgroud)

teo*_*jan 5

LWP::UserAgent::delete() 中的参数用于创建标头而不是内容。使用 HTTP:Request 来实现:

my $browser = LWP::UserAgent->new;
my $url = 'http://somewhere/wm/staticflowentrypusher/json';

my $req = HTTP::Request->new(DELETE => $url);

$req->content('{"name":"flowx"}');
my $response = $browser->request($req);

say $response->content;
Run Code Online (Sandbox Code Playgroud)