Appearance
informat.http http请求
概述
使用informat.http
对象进行HTTP网络请求。通过统一的informat.http.request请求后拿到response对象。
INFO
由于发起请求时可能会出现网络波动或被调用方服务异常导致调用失败,如常见404、502等HTTP状态码。 因此在调用后请先获取对应状态码后再做后续业务处理。
部分调用服务后可能会重定向到另外一个网络地址,针对这种情况,可以在调用时将request对象中followRedirect设置为true来自动重定向到真正访问的网络地址,也可以在业务代码中自行处理
request
发送请求
javascript
informat.http.request(request)
参数 | 类型 | 描述 |
---|---|---|
request | HttpRequest | 请求对象 |
返回值 类型HttpResponse
返回http请求的内容
示例
js
const req = {
url:'https://demo.api.com/api',
method:'POST',
timeout:1000,
form:{
'p1':1,
'p2':'str'
}
}
informat.http.request(req)
Response
statusCode
HTTP状态码
js
response.statusCode()
返回值
类型Integer
body
内容
js
response.body()
返回值
类型String
headers
获取http请求头
js
response.headers()
返回值
类型Object<String,String>
contentEncoding
返回的内容编码方式
js
response.contentEncoding()
返回值
类型String
contentLength
返回的内容长度
js
response.contentLength()
返回值
类型Integer
saveBodyAsFile
保存文件到本地
js
response.saveBodyAsFile(path)
参数 | 类型 | 描述 |
---|---|---|
path | String | 存储路径 |
saveBodyAsStorage
保存文件到文件存储
js
response.saveBodyAsStorage(path)
参数 | 类型 | 描述 |
---|---|---|
path | String | 存储路径 |
saveBodyAsAttachment
保存为附件对象
js
response.saveBodyAsAttachment(tableKey, fieldKey, fileName)
方法 | 类型 | 描述 |
---|---|---|
tableKey | String | 数据表标识符 |
fieldKey | String | 字段标识符 |
fileName | String | 文件名 |
示例一:调用POST请求的例子
js
const req = {
url:'https://demo.api.com/api',
method:'POST',
timeout:1000,
form:{
'p1':1,
'p2':'str'
}
}
const rsp = informat.http.request(req);
console.log(rsp.body());//请求结果
示例二:调用请求后上传文件至本地沙盒环境
js
const req = {
url:'https://demo.api.com/api',
followRedirect: true,
maxRedirectCount: 10,
}
const rsp = informat.http.request(req);
rsp.saveBodyAsFile('demo.png');
示例三:调用请求后上传文件至文件存储
js
const req = {
url:'https://demo.api.com/api',
followRedirect: true,
maxRedirectCount: 10,
}
const rsp = informat.http.request(req);
rsp.saveBodyAsStorage('demo.png');
示例四:调用请求后上传文件至文件存储并保存为附件对象
js
let req = {
url:'https://demo.api.com/api',
followRedirect: true,
maxRedirectCount: 10,
};
let rsp = informat.http.request(req);
const attachment = rsp.saveBodyAsAttachment('tableKey', 'fieldKey', 'demo.png');
// 保存为附件后 可以更新数据、插入数据等操作(tableKey与fieldKey需要保持一致)
const insertBean = {
name: 'demo name',
attachment: attachment, // 如果是多选 需要用[] 包起来 例如: attachment: [attachment]
};
// 调用新增数据接口
informat.table.insert('tableKey', insertBean);
示例五:上传沙盒环境文件至第三方接口
js
const req = {
url:'https://demo.api.com/api',
method:'POST',
timeout:5000,
files: {
file: 'demo.jpg'
}
}
const resp = informat.http.request(req);
console.log(resp.statusCode());
console.log(resp.body());
示例六:上传文件存储文件至第三方接口
js
const req = {
url:'https://demo.api.com/api',
method:'POST',
timeout:5000,
storages: {
file: 'demo.jpg'
}
}
const resp = informat.http.request(req);
console.log(resp.statusCode());
console.log(resp.body());