---
name: "Furl::Request"
section: "3pm"
platform: "linux"
package: "libfurl-perl"
version: "3.14-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Furl::Request"
---

# Furl::Request(3pm)

Request object for Furl

## NAME

Furl::Request - Request object for Furl

## SYNOPSIS

```
    my $f = Furl->new;
    my $req = Furl::Request->new($method, $uri, $headers, $content);
    my $res = $f->request($req);
    print $req->request_line, "\n";
    my $http_req = $req->as_http_request;
    my $req_hash = $req->as_hashref;
```

## DESCRIPTION

This is a HTTP request object in Furl.

## CONSTRUCTOR

```
    my $req = Furl::Request->new($method, $uri);
    # or
    my $req = Furl::Request->new($method, $uri, \%headers);
    # or
    my $req = Furl::Request->new($method, $uri, \%headers, $content);
    # and
    my $req = Furl::Request->parse($http_request_raw_string);
```

## INSTANCE METHODS

- $req-\>method($method)

  Gets/Sets HTTP request method

- $req-\>uri($uri)

  Gets/Sets request URI

- $req-\>headers($headers)

  Gets/Sets instance of Furl::Headers

- $req-\>content($content)

  - $req-\>body($content)

  Gets/Sets request body in scalar.

- $req-\>protocol($protocol)

  ```
      $req->protocol('HTTP/1.1');
      print $req->protocol; #=> "HTTP/1.1"
  ```

  Gets/Sets HTTP protocol in string.

- $req-\>content\_length

  - $req-\>content\_type

  - $req-\>header

  Shorthand to access Furl::Headers.

- $req-\>as\_http\_request

  Make instance of HTTP::Request from Furl::Request.

- $req-\>as\_hashref

  Convert request object to HashRef.

  Format is following:

  ```
      method: Str
      uri: Str
      protocol: Str
      headers: ArrayRef[Str]
      content: Str
  ```

- $req-\>request\_line

  ```
      print $req->request_line; #=> "GET / HTTP/1.1"
  ```

  Returns HTTP request line.
