Spec-Zone.ru › Nim 1

httpcore

Содержит функциональность, используемую совместно модулями httpclient и asynchttpserver.

Нестабильный API.

Импорты

tables, strutils, parseutils

Типы

HttpHeaders = ref object
  table*: TableRef[string, seq[string]]
  isTitleCase: bool
Исходный код Изменить
HttpHeaderValues = distinct seq[string]
Исходный код Изменить
HttpCode = distinct range[0 .. 599]
Исходный код Изменить
HttpVersion = enum
  HttpVer11, HttpVer10
Исходный код Изменить
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.
запрашиваемый HttpMethod Исходный код Изменить

Константы

Http100 = 100
Исходный код Редактировать
Http101 = 101
Исходный код Редактировать
Http200 = 200
Исходный код Редактировать
Http201 = 201
Исходный код Редактировать
Http202 = 202
Исходный код Редактировать
Http203 = 203
Исходный код Редактировать
Http204 = 204
Исходный код Редактировать
Http205 = 205
Исходный код Редактировать
Http206 = 206
Исходный код Редактировать
Http300 = 300
Исходный код Редактировать
Http301 = 301
Исходный код Редактировать
Http302 = 302
Исходный код Редактировать
Http303 = 303
Исходный код Редактировать
Http304 = 304
Исходный код Редактировать
Http305 = 305
Исходный код Редактировать
Http307 = 307
Исходный код Редактировать
Http308 = 308
Исходный код Редактировать
Http400 = 400
Исходный код Редактировать
Http401 = 401
Исходный код Редактировать
Http403 = 403
Исходный код Редактировать
Http404 = 404
Исходный код Редактировать
Http405 = 405
Исходный код Редактировать
Http406 = 406
Исходный код Редактировать
Http407 = 407
Исходный код Редактировать
Http408 = 408
Исходный код Редактировать
Http409 = 409
Исходный код Редактировать
Http410 = 410
Исходный код Редактировать
Http411 = 411
Исходный код Редактировать
Http412 = 412
Исходный код Редактировать
Http413 = 413
Исходный код Редактировать
Http414 = 414
Исходный код Редактировать
Http415 = 415
Исходный код Редактировать
Http416 = 416
Исходный код Редактировать
Http417 = 417
Исходный код Редактировать
Http418 = 418
Исходный код Редактировать
Http421 = 421
Исходный код Редактировать
Http422 = 422
Исходный код Редактировать
Http426 = 426
Исходный код Редактировать
Http428 = 428
Исходный код Редактировать
Http429 = 429
Исходный код Редактировать
Http431 = 431
Исходный код Редактировать
Http451 = 451
Исходный код Редактировать
Http500 = 500
Исходный код Редактировать
Http501 = 501
Исходный код Редактировать
Http502 = 502
Исходный код Редактировать
Http503 = 503
END_OF_DOCUMENT_MARKER
Исходный код Редактировать
Http504 = 504
Исходный код Редактировать
Http505 = 505
Исходный код Редактировать
httpNewLine = "\c\n"
Исходный код Редактировать
headerLimit = 10000
Исходный код Редактировать

Процедуры

proc clear(headers: HttpHeaders) {...}{.inline, raises: [], tags: [].}
Исходный код Редактировать
proc `[]=`(headers: HttpHeaders; key, value: string) {...}{.raises: [], tags: [].}
Устанавливает записи заголовков, связанные с key, до указанного значения. Заменяет все существующие значения. Исходный код Редактировать
proc `[]=`(headers: HttpHeaders; key: string; value: seq[string]) {...}{.raises: [],
    tags: [].}
Устанавливает записи заголовков, связанные с key, до указанного списка значений. Заменяет все существующие значения. Если value пусто, удаляет записи заголовков, связанные с key. Исходный код Редактировать
proc add(headers: HttpHeaders; key, value: string) {...}{.raises: [KeyError],
    tags: [].}
Добавляет указанное значение к указанному ключу. Добавляет к любым существующим значениям, связанным с ключом. Исходный код Редактировать
proc del(headers: HttpHeaders; key: string) {...}{.raises: [], tags: [].}
Удаляет записи заголовков, связанные с key Исходный код Редактировать
proc `==`(rawCode: string; code: HttpCode): bool {...}{.
    deprecated: "Deprecated since v1.2; use rawCode == $code instead",
    raises: [], tags: [].}
Устаревшее: Устарело начиная с v1.2; используйте rawCode == $code вместо
Сравнивает строковое представление кода состояния со значением HttpCode
Примечание: Согласно спецификации HTTP/1.1, фраза причины является
необязательной и должна игнорироваться клиентом, что делает эту процедуру подходящей только для сравнения HttpCode со строковым представлением самого себя.
Исходный код Редактировать

Функции

func newHttpHeaders(titleCase = false): HttpHeaders {...}{.raises: [], tags: [].}
Возвращает новый объект HttpHeaders. Если titleCase установлено в true, заголовки передаются серверу в верхнем регистре (например, "Content-Length") Исходный код Редактировать
func newHttpHeaders(keyValuePairs: openArray[tuple[key: string, val: string]];
                    titleCase = false): HttpHeaders {...}{.raises: [KeyError],
    tags: [].}
Возвращает новый объект HttpHeaders из массива. Если titleCase установлено в true, заголовки передаются серверу в верхнем регистре (например, "Content-Length") Исходный код Редактировать
func `$`(headers: HttpHeaders): string {...}{.inline, raises: [], tags: [].}
Исходный код Редактировать
func `[]`(headers: HttpHeaders; key: string): HttpHeaderValues {...}{.
    raises: [KeyError], tags: [].}

Возвращает значения, связанные с заданным key. Если возвращаемые значения передаются процедуре, ожидающей string, первое значение автоматически выбирается. Если значений, связанных с ключом, нет, генерируется исключение.

Для доступа к нескольким значениям одного ключа используйте перегруженную [] ниже или для получения всех из них, обратитесь напрямую к полю table.

Исходный код Редактировать
func `[]`(headers: HttpHeaders; key: string; i: int): string {...}{.
    raises: [KeyError], tags: [].}
Возвращает i-е значение, связанное с заданным ключом. Если значений, связанных с ключом, нет, или i-е значение не существует, генерируется исключение. Исходный код Редактировать
func contains(values: HttpHeaderValues; value: string): bool {...}{.raises: [],
    tags: [].}
Определяет, является ли value одним из значений внутри values. Сравнение выполняется без учета регистра. Исходный код Редактировать
func hasKey(headers: HttpHeaders; key: string): bool {...}{.raises: [], tags: [].}
Исходный код Редактировать
func getOrDefault(headers: HttpHeaders; key: string;
                  default = @[""].HttpHeaderValues): HttpHeaderValues {...}{.
    raises: [KeyError], tags: [].}
Возвращает значения, связанные с заданным key. Если значений, связанных с ключом, нет, то возвращается default. Исходный код Редактировать
func len(headers: HttpHeaders): int {...}{.inline, raises: [], tags: [].}
Исходный код Редактировать
func parseHeader(line: string): tuple[key: string, value: seq[string]] {...}{.
    raises: [], tags: [].}

Парсит одну строку HTTP-заголовка в пары ключ-значение.

Используется внутри asynchttpserver и httpclient и не должна использоваться вами.

Исходный код Редактировать
func `==`(protocol: tuple[orig: string, major, minor: int]; ver: HttpVersion): bool {...}{.
    raises: [], tags: [].}
Исходный код Редактировать
func contains(methods: set[HttpMethod]; x: string): bool {...}{.raises: [ValueError],
    tags: [].}
Исходный код Редактировать
func `$`(code: HttpCode): string {...}{.raises: [], tags: [].}
Преобразует указанный HttpCode в HTTP-статус.

Пример:

doAssert($Http404 == "404 Not Found")
Исходный код Редактировать
func `==`(a, b: HttpCode): bool {...}{.borrow.}
Исходный код Редактировать
func is2xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].}
Определяет, является ли code кодом HTTP-статуса 2xx. Исходный код Редактировать
func is3xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].}
Определяет, является ли code кодом HTTP-статуса 3xx. Исходный код Редактировать
func is4xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].}
Определяет, является ли code кодом HTTP-статуса 4xx. Исходный код Редактировать
func is5xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].}
Определяет, является ли code кодом HTTP-статуса 5xx. Исходный код Редактировать
func `$`(httpMethod: HttpMethod): string {...}{.raises: [], tags: [].}
Исходный код Редактировать

Итераторы

iterator pairs(headers: HttpHeaders): tuple[key, value: string] {...}{.raises: [],
    tags: [].}
Возвращает каждую пару ключ-значение. Исходный код Редактировать

Конвертеры

converter toString(values: HttpHeaderValues): string {...}{.raises: [], tags: [].}
Исходный код Редактировать

© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/httpcore.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API