core.request是用来获取当前请求客户端和访问信息的工具 1、core.request.headers(ctx) 返回当前请求的所有请求头 2、core.request.header(ctx, name) 返回当前请求的指定请求头 3、core.request.set_header(ctx, header_name, header_value) 用于向当前请求头中添加header,这样在转发到上游的服务中就会带有该header。 4、core.request.get_remote_client_ip(ctx) 获取真正的客户端的ip。和get_ip()相比,如果下游有负载均衡也会忽略。 5、core.request.get_remote_client_port(ctx) 获取真正的客户端的端口。 6、core.request.get_uri_args(ctx) 封装了openresty的ngx.req.get_uri_args用于获取uri的请求参数。比如/foo?a=3&b=4中的参数"a"和"b"。 7、core.request.set_uri_args(ctx, args) 封装了openresty的ngx.req.set_uri_args用于添加或修改请求参数到上游服务。
8、core.request..get_post_args(ctx) 封装了openresty的ngx.req.get_post_args用于获取post的请求参数。
9、core.request.get_body(max_size, ctx) 封装了openresty的ngx.req.get_post_args和ngx.req.get_body_file的组合,用于获取post的请求参数。当get_post_args获取不到时用get_body_file获取。max_size用于设置获取的最大值,当请求数据超过max_size时,将返回err。 10、core.request.get_scheme(ctx) 返回请的scheme 也就是"http"还是”https“ 11、core.request.get_ip(ctx) 返回直接连接到 APISIX 的客户端的远程地址。所以如果下游客户端和APISIX之间有一个负载均衡,此函数将返回负载均衡器的 ip。 12、core.request.get_host(ctx) 获取访问的域名。 13、core.request.get_port(ctx) 获取访问的端口。 14、core.request.get_http_version() 封装了openresty的ngx.req.http_version。返回http版本,目前的可能值是0.9 、1.0 、1.1 和 2。 15、core.request.get_method() 封装了openresty的ngx.req.get_method。返回请求的method。比如"post"、"get"、"put"等。