Appearance
参数变量控件
控件列表变量目录下,许多控件的功能为获取请求参数的控件。这些控件的功能类似,都为获取一个某种参数信息的变量。
获取参数变量的控件有:Cookie
、Headers
、Host
、Hostname
、RemoteAddr
、RemotePort
、RequestBody
、RequestMethod
、RequestUri
、Scheme
、ServerAddr
、ServerPort
、ServerProtocol
、URI
、UrlArgs
业务属性
参数变量控件都有相同的业务属性,且业务属性功能相同,如下:
属性 | 含义 | 说明 | 输入限定 | 示例值 |
---|---|---|---|---|
name | 控件返回值命名 | 控件输出值变量名 | 常量 | host |
enable | 是否启用该控件,未启用时不编译 | 是否编译 | 选择值 | 启用 |
text | 与控件关联的文本 | 设计页控件显示 | 常量 | host |
控件功能
Cookie:获取http cookie。输出为字符串。
Headers:获取http headers。输出为实体对象,http headers里每一个键值对都为该实体对象中的属性和属性值。
Host:获取请求信息中的Host。输出为字符串。
Hostname:获取计算机名。输出为字符串。
RemoteAddr:获取客户端IP地址。输出为字符串。
RemotePort:获取客户端端口号。输出为字符串。
RequestBody:获取http请求中的body参数。输出根据请求headers的数据格式定义自动将Json/Xml的请求体数据反序列化为实体对象,否则为请求体的原始文本。
RequestMethod:获取请求的方法,比如"GET"、"POST"等。输出为字符串。
RequestUri:获取请求的URI,带参数。输出为字符串。
Scheme:获取请求所用的协议,比如http或者是https。输出为字符串。
ServerAddr:获取服务器地址。输出为字符串。
ServerPort:获取服务器端口号。输出为字符串。
ServerProtocol:获取请求的协议版本,"HTTP/1.0"或"HTTP/1.1"。输出为字符串。
URI:获取请求的URI,不带参数。输出为字符串。
UrlArgs:获取http请求中的Url参数实体。输出为实体对象。当存在url参数时,每一个参数即为输出实体对象的一个属性,当不存在Url参数时,输出实体对象为空对象。
使用示例
依次添加以上涉及的参数变量控件,并使用return控件全部输出:

输出控件的data属性为:
json
{
"cookie": "#{cookie}",
"headers": "#{headers}",
"host": "#{host}",
"hostname": "#{hostname}",
"remoteAddr": "#{remoteAddr}",
"remotePort": "#{remotePort}",
"requestBody": "#{requestBody}",
"requestMethod": "#{requestMethod}",
"requestUri": "#{requestUri}",
"scheme": "#{scheme}",
"serverAddr": "#{serverAddr}",
"serverPort": "#{serverPort}",
"serverProtocol": "#{serverProtocol}",
"uRI": "#{uRI}",
"urlArgs": "#{urlArgs}"
}
{
"cookie": "#{cookie}",
"headers": "#{headers}",
"host": "#{host}",
"hostname": "#{hostname}",
"remoteAddr": "#{remoteAddr}",
"remotePort": "#{remotePort}",
"requestBody": "#{requestBody}",
"requestMethod": "#{requestMethod}",
"requestUri": "#{requestUri}",
"scheme": "#{scheme}",
"serverAddr": "#{serverAddr}",
"serverPort": "#{serverPort}",
"serverProtocol": "#{serverProtocol}",
"uRI": "#{uRI}",
"urlArgs": "#{urlArgs}"
}
使用curl请求接口:
$ curl -X POST "http://localhost:6636/api/getParams?a=1&b=2" -H "Content-Type: application/json" -H "cookie: abc" -d "{\"key1\":\"value1\"}"
$ curl -X POST "http://localhost:6636/api/getParams?a=1&b=2" -H "Content-Type: application/json" -H "cookie: abc" -d "{\"key1\":\"value1\"}"
接口返回:
json
{
"requestUri": "/api/getParams?a=1&b=2",
"remoteAddr": "127.0.0.1",
"host": "localhost",
"headers":
{
"cookie": "abc",
"content-length": "17",
"host": "localhost:6636",
"accept": "*/*",
"user-agent": "curl/8.7.1",
"content-type": "application/json"
},
"serverProtocol": "HTTP/1.1",
"hostname": "laptop-ned5v6b0",
"uRI": "/api/getParams",
"cookie": "abc",
"remotePort": "55918",
"urlArgs":
{
"b": "2",
"a": "1"
},
"requestBody":
{
"key1": "value1"
},
"serverPort": "6636",
"requestMethod": "POST",
"serverAddr": "127.0.0.1",
"scheme": "http"
}
{
"requestUri": "/api/getParams?a=1&b=2",
"remoteAddr": "127.0.0.1",
"host": "localhost",
"headers":
{
"cookie": "abc",
"content-length": "17",
"host": "localhost:6636",
"accept": "*/*",
"user-agent": "curl/8.7.1",
"content-type": "application/json"
},
"serverProtocol": "HTTP/1.1",
"hostname": "laptop-ned5v6b0",
"uRI": "/api/getParams",
"cookie": "abc",
"remotePort": "55918",
"urlArgs":
{
"b": "2",
"a": "1"
},
"requestBody":
{
"key1": "value1"
},
"serverPort": "6636",
"requestMethod": "POST",
"serverAddr": "127.0.0.1",
"scheme": "http"
}