docs-v2/content/flux/v0/stdlib/http/requests/do.md

3.2 KiB

title description menu weight flux/v0/tags
requests.do() function `requests.do()` makes an http request.
flux_v0_ref
name parent identifier
requests.do http/requests http/requests/do
201
http
inputs

requests.do() makes an http request.

The returned response contains the following properties:

  • statusCode: HTTP status code returned from the request.
  • body: Contents of the request. A maximum size of 100MB will be read from the response body.
  • headers: Headers present on the response.
  • duration: Duration of request.
Function type signature
(
    method: string,
    url: string,
    ?body: bytes,
    ?config: {A with timeout: duration, insecureSkipVerify: bool},
    ?headers: [string:string],
    ?params: [string:[string]],
) => {statusCode: int, headers: [string:string], duration: duration, body: bytes}

{{% caption %}} For more information, see Function type signatures. {{% /caption %}}

Parameters

method

({{< req >}}) method of the http request. Supported methods: DELETE, GET, HEAD, PATCH, POST, PUT.

url

({{< req >}}) URL to request. This should not include any query parameters.

params

Set of key value pairs to add to the URL as query parameters. Query parameters will be URL encoded. All values for a key will be appended to the query.

headers

Set of key values pairs to include on the request.

body

Data to send with the request.

config

Set of options to control how the request should be performed.

Examples

Make a GET request

import "http/requests"

response = requests.do(url: "http://example.com", method: "GET")

requests.peek(response: response)

Make a GET request that needs authorization

import "http/requests"
import "influxdata/influxdb/secrets"

token = secrets.get(key: "TOKEN")

response =
    requests.do(
        method: "GET",
        url: "http://example.com",
        headers: ["Authorization": "token ${token}"],
    )

requests.peek(response: response)

Make a GET request with query parameters

import "http/requests"

response = requests.do(method: "GET", url: "http://example.com", params: ["start": ["100"]])

requests.peek(response: response)