On this page
httpcore
Contains functionality shared between the httpclient and asynchttpserver modules.
Unstable API.
Imports
Types
- 
    
HttpHeaders = ref object table*: TableRef[string, seq[string]] isTitleCase: bool - Source Edit
 - 
    
HttpHeaderValues = distinct seq[string] - Source Edit
 - 
    
HttpCode = distinct range[0 .. 599] - Source Edit
 - 
    
HttpVersion = enum HttpVer11, HttpVer10 - Source Edit
 - 
    
HttpMethod = enum HttpHead, ## Asks for the response identical to the one that would ## correspond to a GET request, but without the response ## body. HttpGet, ## Retrieves the specified resource. HttpPost, ## Submits data to be processed to the identified ## resource. The data is included in the body of the ## request. HttpPut, ## Uploads a representation of the specified resource. HttpDelete, ## Deletes the specified resource. HttpTrace, ## Echoes back the received request, so that a client ## can see what intermediate servers are adding or ## changing in the request. HttpOptions, ## Returns the HTTP methods that the server supports ## for specified address. HttpConnect, ## Converts the request connection to a transparent ## TCP/IP tunnel, usually used for proxies. HttpPatch ## Applies partial modifications to a resource. - the requested HttpMethod Source Edit
 
Consts
- 
    
Http100 = 100 - Source Edit
 - 
    
Http101 = 101 - Source Edit
 - 
    
Http200 = 200 - Source Edit
 - 
    
Http201 = 201 - Source Edit
 - 
    
Http202 = 202 - Source Edit
 - 
    
Http203 = 203 - Source Edit
 - 
    
Http204 = 204 - Source Edit
 - 
    
Http205 = 205 - Source Edit
 - 
    
Http206 = 206 - Source Edit
 - 
    
Http300 = 300 - Source Edit
 - 
    
Http301 = 301 - Source Edit
 - 
    
Http302 = 302 - Source Edit
 - 
    
Http303 = 303 - Source Edit
 - 
    
Http304 = 304 - Source Edit
 - 
    
Http305 = 305 - Source Edit
 - 
    
Http307 = 307 - Source Edit
 - 
    
Http308 = 308 - Source Edit
 - 
    
Http400 = 400 - Source Edit
 - 
    
Http401 = 401 - Source Edit
 - 
    
Http403 = 403 - Source Edit
 - 
    
Http404 = 404 - Source Edit
 - 
    
Http405 = 405 - Source Edit
 - 
    
Http406 = 406 - Source Edit
 - 
    
Http407 = 407 - Source Edit
 - 
    
Http408 = 408 - Source Edit
 - 
    
Http409 = 409 - Source Edit
 - 
    
Http410 = 410 - Source Edit
 - 
    
Http411 = 411 - Source Edit
 - 
    
Http412 = 412 - Source Edit
 - 
    
Http413 = 413 - Source Edit
 - 
    
Http414 = 414 - Source Edit
 - 
    
Http415 = 415 - Source Edit
 - 
    
Http416 = 416 - Source Edit
 - 
    
Http417 = 417 - Source Edit
 - 
    
Http418 = 418 - Source Edit
 - 
    
Http421 = 421 - Source Edit
 - 
    
Http422 = 422 - Source Edit
 - 
    
Http426 = 426 - Source Edit
 - 
    
Http428 = 428 - Source Edit
 - 
    
Http429 = 429 - Source Edit
 - 
    
Http431 = 431 - Source Edit
 - 
    
Http451 = 451 - Source Edit
 - 
    
Http500 = 500 - Source Edit
 - 
    
Http501 = 501 - Source Edit
 - 
    
Http502 = 502 - Source Edit
 - 
    
Http503 = 503 - Source Edit
 - 
    
Http504 = 504 - Source Edit
 - 
    
Http505 = 505 - Source Edit
 - 
    
httpNewLine = "\c\n" - Source Edit
 - 
    
headerLimit = 10000 - Source Edit
 
Procs
- 
    
proc clear(headers: HttpHeaders) {...}{.inline, raises: [], tags: [].} - Source Edit
 - 
    
proc `[]=`(headers: HttpHeaders; key, value: string) {...}{.raises: [], tags: [].} - 
    Sets the header entries associated with 
keyto the specified value. Replaces any existing values. Source Edit - 
    
proc `[]=`(headers: HttpHeaders; key: string; value: seq[string]) {...}{.raises: [], tags: [].} - 
    Sets the header entries associated with 
keyto the specified list of values. Replaces any existing values. Ifvalueis empty, deletes the header entries associated withkey. Source Edit - 
    
proc add(headers: HttpHeaders; key, value: string) {...}{.raises: [KeyError], tags: [].} - Adds the specified value to the specified key. Appends to any existing values associated with the key. Source Edit
 - 
    
proc del(headers: HttpHeaders; key: string) {...}{.raises: [], tags: [].} - 
    Deletes the header entries associated with 
keySource Edit - 
    
proc `==`(rawCode: string; code: HttpCode): bool {...}{. deprecated: "Deprecated since v1.2; use rawCode == $code instead", raises: [], tags: [].} - 
     Compare the string form of the status code with a HttpCode
    
- Note: According to HTTP/1.1 specification, the reason phrase is
 - 
      optional and should be ignored by the client, making this proc only suitable for comparing the 
HttpCodeagainst the string form of itself. 
 
Funcs
- 
    
func newHttpHeaders(titleCase = false): HttpHeaders {...}{.raises: [], tags: [].} - 
    Returns a new 
HttpHeadersobject. iftitleCaseis set to true, headers are passed to the server in title case (e.g. "Content-Length") Source Edit - 
    
func newHttpHeaders(keyValuePairs: openArray[tuple[key: string, val: string]]; titleCase = false): HttpHeaders {...}{.raises: [KeyError], tags: [].} - 
    Returns a new 
HttpHeadersobject from an array. iftitleCaseis set to true, headers are passed to the server in title case (e.g. "Content-Length") Source Edit - 
    
func `$`(headers: HttpHeaders): string {...}{.inline, raises: [], tags: [].} - Source Edit
 - 
    
func `[]`(headers: HttpHeaders; key: string): HttpHeaderValues {...}{. raises: [KeyError], tags: [].} - 
    
Returns the values associated with the given
key. If the returned values are passed to a procedure expecting astring, the first value is automatically picked. If there are no values associated with the key, an exception is raised.To access multiple values of a key, use the overloaded
Source Edit[]below or to get all of them access thetablefield directly. - 
    
func `[]`(headers: HttpHeaders; key: string; i: int): string {...}{. raises: [KeyError], tags: [].} - 
    Returns the 
i'th value associated with the given key. If there are no values associated with the key or thei'th value doesn't exist, an exception is raised. Source Edit - 
    
func contains(values: HttpHeaderValues; value: string): bool {...}{.raises: [], tags: [].} - 
    Determines if 
valueis one of the values insidevalues. Comparison is performed without case sensitivity. Source Edit - 
    
func hasKey(headers: HttpHeaders; key: string): bool {...}{.raises: [], tags: [].} - Source Edit
 - 
    
func getOrDefault(headers: HttpHeaders; key: string; default = @[""].HttpHeaderValues): HttpHeaderValues {...}{. raises: [KeyError], tags: [].} - 
    Returns the values associated with the given 
key. If there are no values associated with the key, thendefaultis returned. Source Edit - 
    
func len(headers: HttpHeaders): int {...}{.inline, raises: [], tags: [].} - Source Edit
 - 
    
func parseHeader(line: string): tuple[key: string, value: seq[string]] {...}{. raises: [], tags: [].} - 
    
Parses a single raw header HTTP line into key value pairs.
Used by
Source Editasynchttpserverandhttpclientinternally and should not be used by you. - 
    
func `==`(protocol: tuple[orig: string, major, minor: int]; ver: HttpVersion): bool {...}{. raises: [], tags: [].} - Source Edit
 - 
    
func contains(methods: set[HttpMethod]; x: string): bool {...}{.raises: [ValueError], tags: [].} - Source Edit
 - 
    
func `$`(code: HttpCode): string {...}{.raises: [], tags: [].} - 
    Converts the specified 
HttpCodeinto a HTTP status.Example:
Source EditdoAssert($Http404 == "404 Not Found") - 
    
func `==`(a, b: HttpCode): bool {...}{.borrow.} - Source Edit
 - 
    
func is2xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].} - 
    Determines whether 
codeis a 2xx HTTP status code. Source Edit - 
    
func is3xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].} - 
    Determines whether 
codeis a 3xx HTTP status code. Source Edit - 
    
func is4xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].} - 
    Determines whether 
codeis a 4xx HTTP status code. Source Edit - 
    
func is5xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].} - 
    Determines whether 
codeis a 5xx HTTP status code. Source Edit - 
    
func `$`(httpMethod: HttpMethod): string {...}{.raises: [], tags: [].} - Source Edit
 
Iterators
- 
    
iterator pairs(headers: HttpHeaders): tuple[key, value: string] {...}{.raises: [], tags: [].} - Yields each key, value pair. Source Edit
 
Converters
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
 https://nim-lang.org/docs/httpcore.html