Skip to content

参数变量控件

控件列表变量目录下,许多控件的功能为获取请求参数的控件。这些控件的功能类似,都为获取一个某种参数信息的变量。

获取参数变量的控件有:CookieHeadersHostHostnameRemoteAddrRemotePortRequestBodyRequestMethodRequestUriSchemeServerAddrServerPortServerProtocolURIUrlArgs

业务属性

参数变量控件都有相同的业务属性,且业务属性功能相同,如下:

属性含义说明输入限定示例值
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控件全部输出:

img_copy_1.png

输出控件的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"
}