Fx.http
Fx.http:和http请求相关的API
1. HTTP请求,通过构造Request请求,支持application/json,application/x-www-form-urlencoded和multipart/form-data
Fx.http.execute(<Request request>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
request | Request |
返回值类型
APIResult
返回值说明
HttpResult
Groovy举例
// 下载文件的InputStream调用第三方接口上传到客户系统
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、 multipart/form-data 的body请求格式
MultipartBody body = MultipartBody.builder()
.addPart("name", "tom")
.addPart("id", "1234")
.addPart("file", inputStream, '测试附件.docx', 'application/octet-stream')
.build();
//2、application/json 的body请求格式
// Map map = ["a": 1, "b": 2]
// StringBody body = StringBody.builder().content(map).build()
//3、 application/x-www-form-urlencoded 的body请求格式
// 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).参考Request
(2).参考HttpResult
2. HTTP GET请求
Fx.http.get(<String url>, <Map headers>, <int timeout>, <boolean retry>, <int retryCount>, <boolean ignoreSSL>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
url | String | 请求的url |
headers | Map | 可选参数,请求header |
timeout | int | 可选参数,scoketTimeOut超时时间,单位ms,最大10s ,1s=1000ms |
retry | boolean | 可选参数,scoketTimeOut超时是否重试;连接超时一定会进行重试,这个参数决定了timeout是否重试;设置为true时,可能会造成重复提交 |
retryCount | int | 可选参数,重试次数,最多3次 |
ignoreSSL | boolean | 可选参数,绕过SSl验证 |
返回值类型
APIResult
返回值说明
HttpResult
Java举例
Map<String, Object>header = Maps.newHashMap();
header.put("X-token", "myToken");
APIResult ret = Fx.http.get("//www.sxgtbz.com", header, 2000, true, 2, false);
if (ret.isError()) {
log.info(ret.message());
} else {
log.info(ret.getData());
}
Groovy举例
def (Boolean error,HttpResult data,String errorMessage) = Fx.http.get("//www.sxgtbz.com", ["X-token":"myToken"], 2000, true, 2, false)
(1).参考HttpResult
3. HTTP POST请求
Fx.http.post(<String url>, <Map headers>, <Map data>, <int timeout>, <boolean retry>, <int retryCount>, <boolean ignoreSSL>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
url | String | 请求的url |
headers | Map | 请求header |
data | Map | 请求体 |
timeout | int | 可选参数,scoketTimeOut超时时间,单位ms,最大10s ,1s=1000ms |
retry | boolean | 可选参数,scoketTimeOut超时是否重试;连接超时一定会进行重试,这个参数决定了timeout是否重试;设置为true时,可能会造成重复提交 |
retryCount | int | 可选参数,重试次数,最多3次 |
ignoreSSL | boolean | 可选参数,绕过SSl验证 |
返回值类型
APIResult
返回值说明
HttpResult
Java举例
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("//www.sxgtbz.com", header, data, 2000, true, 2, false);
if (ret.isError()) {
log.info(ret.message());
} else {
log.info(ret.getData());
}
Groovy举例
def (Boolean error,HttpResult data,String errorMessage) = Fx.http.post("//www.sxgtbz.com", ["X-token":"myToken"], ["id":1], 2000, true, 2, false)
4. HTTP OPTIONS请求
Fx.http.options(<String url>, <Map headers>, <int timeout>, <boolean retry>, <int retryCount>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
url | String | 请求的url |
headers | Map | 请求header |
timeout | int | 可选参数,scoketTimeOut超时时间,单位ms,最大10s ,1s=1000ms |
retry | boolean | 可选参数,scoketTimeOut超时是否重试;连接超时一定会进行重试,这个参数决定了timeout是否重试;设置为true时,可能会造成重复提交 |
retryCount | int | 可选参数,重试次数,最多3次 |
返回值类型
APIResult
返回值说明
HttpResult
Java举例
Map<String, Object>header = Maps.newHashMap();
header.put("X-token", "myToken");
APIResult ret = Fx.http.options("//www.sxgtbz.com", header,2000, true, 2);
if (ret.isError()) {
log.info(ret.message());
} else {
log.info(ret.getData());
}
Groovy举例
def (Boolean error,HttpResult data,String errorMessage) = Fx.http.options("//www.sxgtbz.com", ["X-token":"myToken"], 2000, true, 2)
5. HTTP PUT请求
Fx.http.put(<String url>, <Map headers>, <Map data>, <int timeout>, <boolean retry>, <int retryCount>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
url | String | 请求的url |
headers | Map | 请求header |
data | Map | 请求体 |
timeout | int | 可选参数,scoketTimeOut超时时间,单位ms,最大10s ,1s=1000ms |
retry | boolean | 可选参数,scoketTimeOut超时是否重试;连接超时一定会进行重试,这个参数决定了timeout是否重试;设置为true时,可能会造成重复提交 |
retryCount | int | 可选参数,重试次数,最多3次 |
返回值类型
APIResult
返回值说明
HttpResult
Java举例
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("//www.sxgtbz.com", header, data, 2000, true, 2);
if (ret.isError()) {
log.info(ret.message());
} else {
log.info(ret.getData());
}
Groovy举例
def (Boolean error,HttpResult data,String errorMessage) = Fx.http.put("//www.sxgtbz.com", ["X-token":"myToken"], ["id":1], 2000, true, 2)
6. HTTP DELETE请求
Fx.http.delete(<String url>, <Map headers>, <Map data>, <int timeout>, <boolean retry>, <int retryCount>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
url | String | 请求的url |
headers | Map | 请求header |
data | Map | 请求体 |
timeout | int | 可选参数,scoketTimeOut超时时间,单位ms,最大10s ,1s=1000ms |
retry | boolean | 可选参数,scoketTimeOut超时是否重试;连接超时一定会进行重试,这个参数决定了timeout是否重试;设置为true时,可能会造成重复提交 |
retryCount | int | 可选参数,重试次数,最多3次 |
返回值类型
APIResult
返回值说明
HttpResult
Java举例
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("//www.sxgtbz.com", header, data, 2000, true, 2);
if (ret.isError()) {
log.info(ret.message());
} else {
log.info(ret.getData());
}
Groovy举例
def (Boolean error,HttpResult data,String errorMessage) = Fx.http.delete("//www.sxgtbz.com", ["X-token":"myToken"], ["id":1], 2000, true, 2)
7. HTTP PATCH请求
Fx.http.patch(<String url>, <Map headers>, <Map data>, <int timeout>, <boolean retry>, <int retryCount>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
url | String | 请求的url |
headers | Map | 请求header |
data | Map | 请求体 |
timeout | int | 可选参数,scoketTimeOut超时时间,单位ms,最大10s ,1s=1000ms |
retry | boolean | 可选参数,scoketTimeOut超时是否重试;连接超时一定会进行重试,这个参数决定了timeout是否重试;设置为true时,可能会造成重复提交 |
retryCount | int | 可选参数,重试次数,最多3次 |
返回值类型
APIResult
返回值说明
HttpResult
Java举例
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("//www.sxgtbz.com", header, data, 2000, true, 2);
if (ret.isError()) {
log.info(ret.message());
} else {
log.info(ret.getData());
}
Groovy举例
def (Boolean error,HttpResult data,String errorMessage) = Fx.http.patch("//www.sxgtbz.com", ["X-token":"myToken"], ["id":1], 2000, true, 2)
参考类 com.fxiaoke.functions.http.Request
字段说明
参数 | 类型 | 说明 |
---|---|---|
url | String | 请求的url地址 |
method | String | 请求的方法POST/GET/PUT... |
headers | Map | 请求的header |
body | RequestBody | 请求的body |
timeout | Integer | 超时时间 |
insecure | Boolean | 是否绕过SSl验证,默认为false,不绕过SSL |
retryCount | Integer | 重试次数,0表示不重试,最大3次重试 |
参考类 com.fxiaoke.functions.http.HttpResult
字段说明
参数 | 类型 | 说明 |
---|---|---|
statusCode | int | HTTP响应状态码 |
content | Object | HTTP响应的Payload内容 |
bytes | byte[] | HTTP请求原始二进制数据 |
headers | Map | HTTP响应的header内容 |