Skip to main content

http

Package httpmodule provides HTTP client functionality for durable programs.

load("http", ...)

http​

load("http", "http")

Functions​

client(timeout: Duration?, retry_strategy: Strategy?, on_error: Callable?)​

Example:

http.client(timeout=time.SECOND * 30)

Parameters:

NameTypeRequiredDescription
timeoutDuration
retry_strategyStrategy
on_errorCallable

Returns: Client


response(headers: Dict?, body: String?, status_code: Int)​

Example:

http.response(status_code=http.STATUS_OK, body="{}")

Parameters:

NameTypeRequiredDescription
headersDict
bodyString
status_codeInt✓

Returns: Response


request(url: String, method: String, headers: Dict?, body: String?, form: Dict?)​

Example:

http.request("https://example.com/api", http.POST, body="{}")

Parameters:

NameTypeRequiredDescription
urlString✓
methodString✓
headersDict
bodyString
formDict

Returns: Request


cookie(name: String, value: String)​

Example:

http.cookie("session", "abc123")

Parameters:

NameTypeRequiredDescription
nameString✓
valueString✓

Returns: Cookie


Types​

Client​

Attributes:

do(request: Request)​

Parameters:

NameTypeRequiredDescription
requestRequest✓

Returns: Response

get(url: String, headers: Dict, body: String, form: Dict)​

Parameters:

NameTypeRequiredDescription
urlString✓
headersDict
bodyString
formDict

Returns: Response

post(url: String, body: String, content_type: String, headers: Dict)​

Parameters:

NameTypeRequiredDescription
urlString✓
bodyString
content_typeString
headersDict

Returns: Response

post_form(url: String, headers: Dict, form: Dict)​

Parameters:

NameTypeRequiredDescription
urlString✓
headersDict
formDict✓

Returns: Response

head(url: String, headers: Dict, body: String, form: Dict)​

Parameters:

NameTypeRequiredDescription
urlString✓
headersDict
bodyString
formDict

Returns: Response

put(url: String, headers: Dict, body: String, form: Dict)​

Parameters:

NameTypeRequiredDescription
urlString✓
headersDict
bodyString
formDict

Returns: Response

patch(url: String, headers: Dict, body: String, form: Dict)​

Parameters:

NameTypeRequiredDescription
urlString✓
headersDict
bodyString
formDict

Returns: Response

delete(url: String, headers: Dict, body: String, form: Dict)​

Parameters:

NameTypeRequiredDescription
urlString✓
headersDict
bodyString
formDict

Returns: Response

options(url: String, headers: Dict, body: String, form: Dict)​

Parameters:

NameTypeRequiredDescription
urlString✓
headersDict
bodyString
formDict

Returns: Response

trace(url: String, headers: Dict, body: String, form: Dict)​

Parameters:

NameTypeRequiredDescription
urlString✓
headersDict
bodyString
formDict

Returns: Response

timeout​

Returns: Duration


Attributes:

name​

Returns: String

value​

Returns: String

quoted​

Returns: Bool

path​

Returns: String

domain​

Returns: String

expires​

Returns: Time

raw_expires​

Returns: String

max_age​

Returns: Int

secure​

Returns: Bool

http_only​

Returns: Bool

same_site​

Returns: Int

partitioned​

Returns: Bool

raw​

Returns: String

unparsed​

Returns: List


Request​

Attributes:

method​

Returns: String

url​

Returns: String

proto​

Returns: String

proto_major​

Returns: Int

proto_minor​

Returns: Int

Returns: Dict

body​

Returns: String

content_length​

Returns: Int

transfer_encoding​

Returns: List

host​

Returns: String

remote_addr​

Returns: String

request_uri​

Returns: String

response​

Returns: Response

cookies​

Returns: List

referer​

Returns: String

user_agent​

Returns: String

Parameters:

NameTypeRequiredDescription
cookieCookie✓

Returns: None


Response​

Attributes:

status​

Returns: String

status_code​

Returns: Int

proto​

Returns: String

proto_major​

Returns: Int

proto_minor​

Returns: Int

header​

Returns: Dict

body​

Returns: String

content_length​

Returns: Int

transfer_encoding​

Returns: List

uncompressed​

Returns: Bool

request​

Returns: Request

cookies​

Returns: List

location​

Returns: String


Constants​

Verbs​

  • GET
  • HEAD
  • POST
  • PUT
  • PATCH
  • DELETE
  • CONNECT
  • OPTIONS
  • TRACE

Statuses​

  • STATUS_CONTINUE
  • STATUS_SWITCHING_PROTOCOLS
  • STATUS_PROCESSING
  • STATUS_EARLY_HINTS
  • STATUS_OK
  • STATUS_CREATED
  • STATUS_ACCEPTED
  • STATUS_NON_AUTHORITATIVE_INFO
  • STATUS_NO_CONTENT
  • STATUS_RESET_CONTENT
  • STATUS_PARTIAL_CONTENT
  • STATUS_MULTI_STATUS
  • STATUS_ALREADY_REPORTED
  • STATUS_IM_USED
  • STATUS_MULTIPLE_CHOICES
  • STATUS_MOVED_PERMANENTLY
  • STATUS_FOUND
  • STATUS_SEE_OTHER
  • STATUS_NOT_MODIFIED
  • STATUS_USE_PROXY
  • STATUS_TEMPORARY_REDIRECT
  • STATUS_PERMANENT_REDIRECT
  • STATUS_BAD_REQUEST
  • STATUS_UNAUTHORIZED
  • STATUS_PAYMENT_REQUIRED
  • STATUS_FORBIDDEN
  • STATUS_NOT_FOUND
  • STATUS_METHOD_NOT_ALLOWED
  • STATUS_NOT_ACCEPTABLE
  • STATUS_PROXY_AUTH_REQUIRED
  • STATUS_REQUEST_TIMEOUT
  • STATUS_CONFLICT
  • STATUS_GONE
  • STATUS_LENGTH_REQUIRED
  • STATUS_PRECONDITION_FAILED
  • STATUS_REQUEST_ENTITY_TOO_LARGE
  • STATUS_REQUEST_URI_TOO_LONG
  • STATUS_UNSUPPORTED_MEDIA_TYPE
  • STATUS_REQUESTED_RANGE_NOT_SATISFIABLE
  • STATUS_EXPECTATION_FAILED
  • STATUS_TEAPOT
  • STATUS_MISDIRECTED_REQUEST
  • STATUS_UNPROCESSABLE_ENTITY
  • STATUS_LOCKED
  • STATUS_FAILED_DEPENDENCY
  • STATUS_TOO_EARLY
  • STATUS_UPGRADE_REQUIRED
  • STATUS_PRECONDITION_REQUIRED
  • STATUS_TOO_MANY_REQUESTS
  • STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE
  • STATUS_UNAVAILABLE_FOR_LEGAL_REASONS
  • STATUS_INTERNAL_SERVER_ERROR
  • STATUS_NOT_IMPLEMENTED
  • STATUS_BAD_GATEWAY
  • STATUS_SERVICE_UNAVAILABLE
  • STATUS_GATEWAY_TIMEOUT
  • STATUS_HTTP_VERSION_NOT_SUPPORTED
  • STATUS_VARIANT_ALSO_NEGOTIATES
  • STATUS_INSUFFICIENT_STORAGE
  • STATUS_LOOP_DETECTED
  • STATUS_NOT_EXTENDED
  • STATUS_NETWORK_AUTHENTICATION_REQUIRED

Errors​

  • DNS_TIMEOUT_ERROR
  • DNS_ERROR
  • DESTINATION_NOT_FOUND_ERROR
  • DESTINATION_UNAVAILABLE_ERROR
  • DESTINATION_IP_PROHIBITED_ERROR
  • DESTINATION_IP_UNROUTABLE_ERROR
  • CONNECTION_REFUSED_ERROR
  • CONNECTION_TERMINATED_ERROR
  • CONNECTION_TIMEOUT_ERROR
  • CONNECTION_READ_TIMEOUT_ERROR
  • CONNECTION_WRITE_TIMEOUT_ERROR
  • CONNECTION_LIMIT_REACHED_ERROR
  • TLS_PROTOCOL_ERROR
  • TLS_CERTIFICATE_ERROR
  • TLS_ALERT_RECEIVED_ERROR
  • INTERNAL_ERROR