HttpServerRequest

封装了从客户端接收到的一个 HTTP 请求的所有信息。

在服务器的请求处理逻辑中,你可以通过 HttpServerCall.getRequest 访问此对象, 以获取 URL、头部、查询参数、请求体等所有相关数据。

Author

M8Test, [email protected], https://m8test.com

Functions

Link copied to clipboard

异步将请求体作为原始字节数组读取。

Link copied to clipboard
abstract fun getCharset(): HttpCharset?

获取请求的字符集,通常从 Content-Type 中提取。

Link copied to clipboard
abstract fun getContentLength(): Long?

获取请求的 Content-Length 头部值。

Link copied to clipboard
abstract fun getContentType(): ContentType

获取请求的 Content-Type

Link copied to clipboard
abstract fun getCookies(): Map<String, String>

以 Map 的形式获取请求中发送的所有 Cookie。

Link copied to clipboard
abstract fun getHeaders(): Map<String, List<String>?>

获取请求的所有 HTTP 头部。

Link copied to clipboard
abstract fun getHost(): String

获取请求的主机名,不包含端口号。

Link copied to clipboard
abstract fun getHttpMethod(): HttpMethod

获取请求的 HTTP 方法。

Link copied to clipboard
abstract fun getHttpVersion(): String

获取请求的 HTTP 协议版本,例如 "HTTP/1.1"。

Link copied to clipboard
abstract fun getJsonBody(scope: CoroutineScope): Deferred<Any?>

异步读取并解析 JSON 格式的请求体。

Link copied to clipboard

获取关于服务器端连接点的信息(不考虑代理)。

Link copied to clipboard

异步读取并解析 multipart/form-data 格式的请求体。

Link copied to clipboard

获取关于原始客户端连接点的信息,会考虑 X-Forwarded-* 等代理头部。

Link copied to clipboard
abstract fun getPath(): String

获取请求的路径部分,不包含查询参数和主机名。 例如,对于 http://example.com/users/1?active=true`,此方法返回 /users/1`。

Link copied to clipboard
abstract fun getPathParameters(): Map<String, List<String>?>

获取从 URL 路径中解析出的参数。 例如,如果路由是 get("/user/{id}"),并且请求的 URL 是 /user/123, 那么 getPathParameters()["id"] 的结果将是 ["123"]

Link copied to clipboard
abstract fun getPort(): Int

获取请求的端口号。

Link copied to clipboard

获取 URL 中的查询参数(问号 ? 后面的部分)。

Link copied to clipboard
abstract fun getQueryString(): String

获取原始的查询字符串,不进行任何解析。

Link copied to clipboard
abstract fun getTextBody(scope: CoroutineScope): Deferred<String?>

异步将请求体作为纯文本读取。

Link copied to clipboard
abstract fun getUri(): String

获取请求的 URI,即主机名和端口之后的所有内容,包括路径和查询字符串。 例如,对于 http://example.com/users/1?active=true`,此方法返回 /users/1?active=true`。

Link copied to clipboard

异步读取并解析 application/x-www-form-urlencodedmultipart/form-data 格式的请求体。

Link copied to clipboard
abstract fun getUserAgent(): String?

获取请求的 User-Agent 头部值。

Link copied to clipboard
abstract fun isMultipart(): Boolean

检查请求是否为 multipart/form-data 类型。