Fx.http

Fx.http: API related to http request

1. HTTP request, by constructing a Request request, it supports application/json, application/x-www-form-urlencoded and multipart/form-data

Fx.http.execute(<Request request>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| request | Request | |

return type

APIResult

Return value description

HttpResult

Groovy example

// The InputStream of the downloaded file calls the third-party interface to upload to the client system
def(Boolean err, Object fileData, String msg) = Fx.file.downloadStream("N_202111_29_6eb71dca766944c582b87e6a5213f3a3.docx")
if (err) {
  log.info("downloadStream error :" + msg)
} else {
  log.info("file data :" + fileData)
}
InputStream inputStream = fileData['inputStream'] as InputStream

//1. The body request format of multipart/form-data can be used to transfer files
MultipartBody body = MultipartBody. builder()
  .addPart("name", "tom")
  .addPart("id", "1234")
  .addPart("file", inputStream, 'test attachment.docx', 'application/octet-stream')
  .build();
//2, or use InputStreamBody to transfer files
//InputStreamBody body = InputStreamBody. builder()
// .content(inputStream)
// .build()
//3, application/json body request format
// Map map = ["a": 1, "b": 2]
// StringBody body = StringBody.builder().content(map).build()

//4, application/x-www-form-urlencoded body request format
// FormBody body = FormBody. builder()
// .field("a", "qweasd")
// .field("b", 12423)
// .field("c", "hello")
// .build()

Request request = Request. builder()
  .method("POST")
  .url('http://httpbin.org/post')
  .timeout(7000)
  .retryCount(0)
  .header("Content-Type", "multipart/form-data")
  .body(body)
  .build()

def(Boolean error, HttpResult result, String message) = Fx.http.execute(request)
if (error) {
  log.info("error :" + message)
} else {
  log. info(result)
}

(1). Refer to Request
(2). Refer to HttpResult


2. HTTP GET request

Fx.http.get(<String url>, <Map headers>, <Integer timeout>, <Boolean retry>, <Integer retryCount>, <Boolean ignoreSSL>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| url | String | requested url |
| headers | Map | optional parameter, request header |
| timeout | Integer | Optional parameter, scoketTimeOut timeout time, unit ms, maximum 10s, 1s=1000ms |
| retry | Boolean | optional parameter, whether to retry when scoketTimeOut times out; connection timeout will definitely be retried, this parameter determines whether timeout is retried; when set to true, it may cause repeated submissions |
| retryCount | Integer | optional parameter, the number of retries, up to 3 |
| ignoreSSL | Boolean | optional parameter, bypass SSL verification |

return type

APIResult

Return value description

HttpResult

Java example

Map<String, Object>header = Maps. newHashMap();
header.put("X-token", "myToken");
APIResult ret = Fx.http.get("http://www.fxiaoke.com", header, 2000, true, 2, false);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

def (Boolean error,HttpResult data,String errorMessage) = Fx.http.get("http://www.fxiaoke.com", ["X-token":"myToken"], 2000, true, 2, false)

(1). Refer to HttpResult


3. HTTP POST request

Fx.http.post(<String url>, <Map headers>, <Map data>, <Integer timeout>, <Boolean retry>, <Integer retryCount>, <Boolean ignoreSSL>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| url | String | requested url |
| headers | Map | request header |
| data | Map |request body |
| timeout | Integer | Optional parameter, scoketTimeOut timeout time, unit ms, maximum 10s, 1s=1000ms |
| retry | Boolean | optional parameter, whether to retry when scoketTimeOut times out; connection timeout will definitely be retried, this parameter determines whether timeout is retried; when set to true, it may cause repeated submissions |
| retryCount | Integer | optional parameter, the number of retries, up to 3 |
| ignoreSSL | Boolean | optional parameter, bypass SSL verification |

return type

APIResult

Return value description

HttpResult

Java example

Map<String, Object>header = Maps. newHashMap();
header.put("X-token", "myToken");
Map<String, Object>data = Maps. newHashMap();
data. put("id", 1);

APIResult ret = Fx.http.post("http://www.fxiaoke.com", header, data, 2000, true, 2, false);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

def (Boolean error,HttpResult data,String errorMessage) = Fx.http.post("http://www.fxiaoke.com", ["X-token":"myToken"], ["id":1], 2000, true, 2, false)

4. HTTP OPTIONS request

Fx.http.options(<String url>, <Map headers>, <Integer timeout>, <Boolean retry>, <Integer retryCount>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| url | String | requested url |
| headers | Map | request header |
| timeout | Integer | Optional parameter, scoketTimeOut timeout time, unit ms, maximum 10s, 1s=1000ms |
| retry | Boolean | optional parameter, whether to retry when scoketTimeOut times out; connection timeout will definitely be retried, this parameter determines whether timeout is retried; when set to true, it may cause repeated submissions |
| retryCount | Integer | optional parameter, the number of retries, up to 3 |

returnvalue type

APIResult

Return value description

HttpResult

Java example

Map<String, Object>header = Maps. newHashMap();
header.put("X-token", "myToken");

APIResult ret = Fx.http.options("http://www.fxiaoke.com", header,2000, true, 2);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

def (Boolean error,HttpResult data,String errorMessage) = Fx.http.options("http://www.fxiaoke.com", ["X-token":"myToken"], 2000, true, 2)

5. HTTP PUT request

Fx.http.put(<String url>, <Map headers>, <Map data>, <Integer timeout>, <Boolean retry>, <Integer retryCount>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| url | String | requested url |
| headers | Map | request header |
| data | Map | request body |
| timeout | Integer | Optional parameter, scoketTimeOut timeout time, unit ms, maximum 10s, 1s=1000ms |
| retry | Boolean | optional parameter, whether to retry when scoketTimeOut times out; connection timeout will definitely be retried, this parameter determines whether timeout is retried; when set to true, it may cause repeated submissions |
| retryCount | Integer | optional parameter, the number of retries, up to 3 |

return type

APIResult

Return value description

HttpResult

Java example

Map<String, Object>header = Maps. newHashMap();
header.put("X-token", "myToken");
Map<String, Object>data = Maps. newHashMap();
data. put("id", 1);

APIResult ret = Fx.http.put("http://www.fxiaoke.com", header, data, 2000, true, 2);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

def (Boolean error,HttpResult data,String errorMessage) = Fx.http.put("http://www.fxiaoke.com", ["X-token":"myToken"], ["id":1], 2000, true, 2)

6. HTTP DELETE request

Fx.http.delete(<String url>, <Map headers>, <Map data>, <Integer timeout>, <Boolean retry>, <Integer retryCount>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| url | String | requested url |
| headers | Map | request header |
| data | Map | request body |
| timeout | Integer | Optional parameter, scoketTimeOut timeout time, unit ms, maximum 10s, 1s=1000ms |
| retry | Boolean | optional parameter, whether to retry when scoketTimeOut times out; connection timeout will definitely be retried, this parameter determines whether timeout is retried; when set to true, it may cause repeated submissions |
| retryCount | Integer | optional parameter, the number of retries, up to 3 |

return type

APIResult

Return value description

HttpResult

Java example

Map<String, Object>header = Maps. newHashMap();
header.put("X-token", "myToken");
Map<String, Object>data = Maps. newHashMap();
data. put("id", 1);

APIResult ret = Fx.http.delete("http://www.fxiaoke.com", header, data, 2000, true, 2);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

def (Boolean error,HttpResult data,String errorMessage) = Fx.http.delete("http://www.fxiaoke.com", ["X-token":"myToken"], ["id":1], 2000, true, 2)

7. HTTP PATCH request

Fx.http.patch(<String url>, <Map headers>, <Map data>, <Integer timeout>, <Boolean retry>, <Integer retryCount>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| url | String | the requested url|
| headers | Map | request header |
| data | Map | request body |
| timeout | Integer | Optional parameter, scoketTimeOut timeout time, unit ms, maximum 10s, 1s=1000ms |
| retry | Boolean | optional parameter, whether to retry when scoketTimeOut times out; connection timeout will definitely be retried, this parameter determines whether timeout is retried; when set to true, it may cause repeated submissions |
| retryCount | Integer | optional parameter, the number of retries, up to 3 |

return type

APIResult

Return value description

HttpResult

Java example

Map<String, Object>header = Maps. newHashMap();
header.put("X-token", "myToken");
Map<String, Object>data = Maps. newHashMap();
data. put("id", 1);

APIResult ret = Fx.http.patch("http://www.fxiaoke.com", header, data, 2000, true, 2);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

def (Boolean error,HttpResult data,String errorMessage) = Fx.http.patch("http://www.fxiaoke.com", ["X-token":"myToken"], ["id":1], 2000, true, 2)

Reference class com.fxiaoke.functions.http.Request

field description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| url | String | Requested url address |
| method | String | request method POST/GET/PUT... |
| headers | Map | request headers |
| body | RequestBody | request body |
| timeout | Integer | timeout time |
| insecure | Boolean | whether to bypass SSL verification, the default is false, not to bypass SSL |
| retryCount | Integer | Number of retries, 0 means no retry, maximum 3 retries|

Reference class com.fxiaoke.functions.http.HttpResult

field description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| statusCode | int | HTTP response status code |
| content | Object | Payload content of the HTTP response |
| bytes | byte[] | HTTP request raw binary data |
| headers | Map | header content of HTTP response |

2022-11-23
0 0