http.get() function
The http.get()
function is experimental and subject to change at any time. By using this function, you accept the risks of experimental functions.
The http.get()
function submits an HTTP GET request to the specified URL and returns the HTTP status code, response body, and response headers.
*Function type: Miscellaneous*
import "experimental/http"
http.get(
url: "http://localhost:8086/",
headers: {x:"a", y:"b", z:"c"},
timeout: 30s
)
Parameters
url
The URL to send the GET request to.
*Data type: String*
headers
Headers to include with the GET request.
*Data type: Record*
timeout
Timeout for the GET request. Default is 30s
.
*Data type: Duration*
Response format
http.get
returns a record that contains the following:
statusCode
The HTTP status code returned by the GET request.
*Data type: Integer*
body
The response body.
*Data type: Byte Array*
headers
Headers included with the response.
*Data type: Record*
Examples
Get the status of InfluxDB OSS
import "influxdata/influxdb/secrets"
import "experimental/http"
import "csv"
token = secrets.get(key: "READONLY_TOKEN")
response = http.get(
url: "http://localhost:8086/health",
headers: {Authorization: "Token ${token}"}
)
httpStatus = response.statusCode
responseBody = string(v: response.body)
responseHeaders = response.headers
// Response header data
date = responseHeaders.Date
contentLenth = responseHeaders["Content-Length"]
contentType = responseHeaders["Content-Type"]
// Use the returned data in a stream of tables
csvData = "#datatype,string,long,string
#group,false,false,false
#default,,,
,result,table,column
,,0,*
"
csv.from(csv: csvData)
|> map(fn: (r) => ({
httpStatus: httpStatus,
responseBody: responseBody,
date: date,
contentLenth: contentLenth,
contentType: contentType,
}))