HTTP-Request-AsCurl

 view release on metacpan or  search on metacpan

lib/HTTP/Request/AsCurl.pm  view on Meta::CPAN


sub as_curl {
    my ($request, %params) = @_;

    my $content = $request->content;
    my @data    = split '&', $content;
    my $method  = $request->method;
    my $uri     = $request->uri;
    my $headers = $request->headers;
    my $user    = $headers->authorization_basic;
    my @h       = grep { $_ !~ /(authorization|content-length|content-type)/i }
        $headers->header_field_names;

    my @cmd = (["curl"]);
    push(@cmd, ["--request", $method, $uri]);
    push(@cmd, ["--dump-header", "-"]);
    push(@cmd, ["--user",   $user]) if $user;
    push(@cmd, ["--header", "$_: " . $headers->header($_)]) for sort @h;
    push(@cmd, ["--data", $_]) for sort @data;

    return map { @$_ } @cmd unless keys %params;



( run in 1.372 second using v1.01-cache-2.11-cpan-524268b4103 )