NAME

HTTP::Request::FromFetch - turn a Javascript fetch() statement into HTTP::Request

SYNPSIS

  my $ua = LWP::UserAgent->new();
  my $req = HTTP::Request::FromFetch->new(<<'JS')->as_request;

      await fetch("https://www.example.com/index.html", {
          "credentials": "include",
          "headers": {
              "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0",
              "Accept": "text/javascript, text/html, application/xml, text/xml, */*",
              "Accept-Language": "de,en-US;q=0.7,en;q=0.3",
              "X-CSRF-Token": "secret",
              "X-Requested-With": "XMLHttpRequest"
          },
          "referrer": "https://www.example.com/",
          "method": "GET",
          "mode": "cors"
      });

  JS
  $ua->request( $req );

DESCRIPTION

This module parses a call to the Javascript Fetch API and returns an object that you can turn into a HTTP::Request to use with LWP::UserAgent or other user agents to perform a largely identical HTTP request.

The parsing of the Javascript stanza is done through a regular expression, so the test must largely follow the pattern shown in the synopsis. Usually, the fetch() stanzas come from a browsers "Copy as fetch" context menu, so there is no problem parsing these.

This is mostly a factory class for HTTP::Request::CurlParameters objects.

SEE ALSO

Javascript Fetch API

REPOSITORY

The public repository of this module is http://github.com/Corion/HTTP-Request-FromCurl.

SUPPORT

The public support forum of this module is https://perlmonks.org/.

BUG TRACKER

Please report bugs in this module via the RT CPAN bug queue at https://rt.cpan.org/Public/Dist/Display.html?Name=HTTP-Request-FromCurl or via mail to filter-signatures-Bugs@rt.cpan.org.

AUTHOR

Max Maischein corion@cpan.org

COPYRIGHT (c)

Copyright 2018 by Max Maischein corion@cpan.org.

LICENSE

This module is released under the same terms as Perl itself.